From b70b4c941e71381dffd8332bbf3331e6e4482ee1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 06:08:58 +0000 Subject: [PATCH 1/7] feat: add `BaseResponse` class for accessing raw responses --- src/Account/AccountListResponse.php | 6 +- src/Actions/ActionDeleteResponse.php | 6 +- src/Actions/ActionGetResponse.php | 6 +- src/Actions/ActionNewResponse.php | 6 +- src/Actions/ActionUpdateResponse.php | 6 +- .../Execute/ExecuteExecuteByIDResponse.php | 6 +- .../Execute/ExecuteExecuteResponse.php | 6 +- src/Auth/AuthGetResponse.php | 6 +- src/Auth/AuthNewResponse.php | 6 +- src/Authors/AuthorDeleteResponse.php | 6 +- src/Authors/AuthorGetResponse.php | 6 +- src/Authors/AuthorListResponse.php | 6 +- src/Authors/AuthorNewResponse.php | 6 +- src/Authors/AuthorUpdateResponse.php | 6 +- src/Content/ContentSubmitResponse.php | 6 +- src/Core/BaseClient.php | 37 ++----- src/Core/Concerns/ResponseProxy.php | 101 ++++++++++++++++++ src/Core/Concerns/SdkPage.php | 16 ++- src/Core/Concerns/SdkResponse.php | 29 ----- src/Core/Contracts/BasePage.php | 19 ---- src/Core/Contracts/BaseResponse.php | 21 ++++ src/Core/Contracts/BaseStream.php | 1 + src/Core/Conversion.php | 11 -- .../Contracts/ResponseConverter.php | 18 ---- src/Core/Implementation/RawResponse.php | 100 +++++++++++++++++ src/Queue/Items/ItemListResponse.php | 6 +- src/Queue/Items/ItemResolveResponse.php | 6 +- src/Queue/Items/ItemUnresolveResponse.php | 6 +- src/Queue/QueueGetResponse.php | 6 +- src/Queue/QueueGetStatsResponse.php | 6 +- src/Services/AccountService.php | 7 +- src/Services/Actions/ExecuteService.php | 13 ++- src/Services/ActionsService.php | 31 ++++-- src/Services/AuthService.php | 13 ++- src/Services/AuthorsService.php | 31 ++++-- src/Services/ContentService.php | 7 +- src/Services/Queue/ItemsService.php | 19 ++-- src/Services/QueueService.php | 13 ++- src/Services/Wordlist/WordsService.php | 13 ++- src/Services/WordlistService.php | 25 +++-- .../WordlistGetEmbeddingStatusResponse.php | 6 +- src/Wordlist/WordlistGetResponse.php | 6 +- src/Wordlist/WordlistUpdateResponse.php | 6 +- src/Wordlist/Words/WordAddResponse.php | 6 +- src/Wordlist/Words/WordRemoveResponse.php | 6 +- 45 files changed, 382 insertions(+), 293 deletions(-) create mode 100644 src/Core/Concerns/ResponseProxy.php delete mode 100644 src/Core/Concerns/SdkResponse.php create mode 100644 src/Core/Contracts/BaseResponse.php delete mode 100644 src/Core/Conversion/Contracts/ResponseConverter.php create mode 100644 src/Core/Implementation/RawResponse.php diff --git a/src/Account/AccountListResponse.php b/src/Account/AccountListResponse.php index 3374b77..a95a3f0 100644 --- a/src/Account/AccountListResponse.php +++ b/src/Account/AccountListResponse.php @@ -7,9 +7,7 @@ use ModerationAPI\Account\AccountListResponse\CurrentProject; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AccountListResponseShape = array{ @@ -20,13 +18,11 @@ * current_project?: CurrentProject|null, * } */ -final class AccountListResponse implements BaseModel, ResponseConverter +final class AccountListResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * ID of the account. */ diff --git a/src/Actions/ActionDeleteResponse.php b/src/Actions/ActionDeleteResponse.php index 208ae8d..a0d25f0 100644 --- a/src/Actions/ActionDeleteResponse.php +++ b/src/Actions/ActionDeleteResponse.php @@ -6,20 +6,16 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ActionDeleteResponseShape = array{id: string, deleted: bool} */ -final class ActionDeleteResponse implements BaseModel, ResponseConverter +final class ActionDeleteResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * The ID of the action. */ diff --git a/src/Actions/ActionGetResponse.php b/src/Actions/ActionGetResponse.php index ed95145..e512268 100644 --- a/src/Actions/ActionGetResponse.php +++ b/src/Actions/ActionGetResponse.php @@ -11,9 +11,7 @@ use ModerationAPI\Actions\ActionGetResponse\Webhook; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ActionGetResponseShape = array{ @@ -33,13 +31,11 @@ * type?: value-of|null, * } */ -final class ActionGetResponse implements BaseModel, ResponseConverter +final class ActionGetResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * The ID of the action. */ diff --git a/src/Actions/ActionNewResponse.php b/src/Actions/ActionNewResponse.php index fa9c736..4f8cdd7 100644 --- a/src/Actions/ActionNewResponse.php +++ b/src/Actions/ActionNewResponse.php @@ -10,9 +10,7 @@ use ModerationAPI\Actions\ActionNewResponse\Type; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ActionNewResponseShape = array{ @@ -31,13 +29,11 @@ * type?: value-of|null, * } */ -final class ActionNewResponse implements BaseModel, ResponseConverter +final class ActionNewResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * The ID of the action. */ diff --git a/src/Actions/ActionUpdateResponse.php b/src/Actions/ActionUpdateResponse.php index 60f788c..ecde442 100644 --- a/src/Actions/ActionUpdateResponse.php +++ b/src/Actions/ActionUpdateResponse.php @@ -10,9 +10,7 @@ use ModerationAPI\Actions\ActionUpdateResponse\Type; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ActionUpdateResponseShape = array{ @@ -31,13 +29,11 @@ * type?: value-of|null, * } */ -final class ActionUpdateResponse implements BaseModel, ResponseConverter +final class ActionUpdateResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * The ID of the action. */ diff --git a/src/Actions/Execute/ExecuteExecuteByIDResponse.php b/src/Actions/Execute/ExecuteExecuteByIDResponse.php index d5e6976..60e18a5 100644 --- a/src/Actions/Execute/ExecuteExecuteByIDResponse.php +++ b/src/Actions/Execute/ExecuteExecuteByIDResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ExecuteExecuteByIDResponseShape = array{ * actionId: string, ids: list, success: bool * } */ -final class ExecuteExecuteByIDResponse implements BaseModel, ResponseConverter +final class ExecuteExecuteByIDResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * The ID of the action. */ diff --git a/src/Actions/Execute/ExecuteExecuteResponse.php b/src/Actions/Execute/ExecuteExecuteResponse.php index 2eece6f..6f4afad 100644 --- a/src/Actions/Execute/ExecuteExecuteResponse.php +++ b/src/Actions/Execute/ExecuteExecuteResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * Execution result. * * @phpstan-type ExecuteExecuteResponseShape = array{success: bool} */ -final class ExecuteExecuteResponse implements BaseModel, ResponseConverter +final class ExecuteExecuteResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Whether the action was executed successfully. */ diff --git a/src/Auth/AuthGetResponse.php b/src/Auth/AuthGetResponse.php index 947bd13..412c12a 100644 --- a/src/Auth/AuthGetResponse.php +++ b/src/Auth/AuthGetResponse.php @@ -6,20 +6,16 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AuthGetResponseShape = array{message: string, status: string} */ -final class AuthGetResponse implements BaseModel, ResponseConverter +final class AuthGetResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Message of the authentication. */ diff --git a/src/Auth/AuthNewResponse.php b/src/Auth/AuthNewResponse.php index 0bb3710..5b289e2 100644 --- a/src/Auth/AuthNewResponse.php +++ b/src/Auth/AuthNewResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AuthNewResponseShape = array{ * message: string, project: string, status: string * } */ -final class AuthNewResponse implements BaseModel, ResponseConverter +final class AuthNewResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Message of the authentication. */ diff --git a/src/Authors/AuthorDeleteResponse.php b/src/Authors/AuthorDeleteResponse.php index 43d00f3..16a904c 100644 --- a/src/Authors/AuthorDeleteResponse.php +++ b/src/Authors/AuthorDeleteResponse.php @@ -6,20 +6,16 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AuthorDeleteResponseShape = array{success: bool} */ -final class AuthorDeleteResponse implements BaseModel, ResponseConverter +final class AuthorDeleteResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - #[Api] public bool $success; diff --git a/src/Authors/AuthorGetResponse.php b/src/Authors/AuthorGetResponse.php index 44c6af7..4353fed 100644 --- a/src/Authors/AuthorGetResponse.php +++ b/src/Authors/AuthorGetResponse.php @@ -12,9 +12,7 @@ use ModerationAPI\Authors\AuthorGetResponse\TrustLevel; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AuthorGetResponseShape = array{ @@ -35,13 +33,11 @@ * profile_picture?: string|null, * } */ -final class AuthorGetResponse implements BaseModel, ResponseConverter +final class AuthorGetResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Author ID in Moderation API. */ diff --git a/src/Authors/AuthorListResponse.php b/src/Authors/AuthorListResponse.php index 37df57f..41861e3 100644 --- a/src/Authors/AuthorListResponse.php +++ b/src/Authors/AuthorListResponse.php @@ -14,22 +14,18 @@ use ModerationAPI\Authors\AuthorListResponse\Pagination; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AuthorListResponseShape = array{ * authors: list, pagination: Pagination * } */ -final class AuthorListResponse implements BaseModel, ResponseConverter +final class AuthorListResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** @var list $authors */ #[Api(list: Author::class)] public array $authors; diff --git a/src/Authors/AuthorNewResponse.php b/src/Authors/AuthorNewResponse.php index d481a18..141ccd2 100644 --- a/src/Authors/AuthorNewResponse.php +++ b/src/Authors/AuthorNewResponse.php @@ -12,9 +12,7 @@ use ModerationAPI\Authors\AuthorNewResponse\TrustLevel; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AuthorNewResponseShape = array{ @@ -35,13 +33,11 @@ * profile_picture?: string|null, * } */ -final class AuthorNewResponse implements BaseModel, ResponseConverter +final class AuthorNewResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Author ID in Moderation API. */ diff --git a/src/Authors/AuthorUpdateResponse.php b/src/Authors/AuthorUpdateResponse.php index e323eab..68490eb 100644 --- a/src/Authors/AuthorUpdateResponse.php +++ b/src/Authors/AuthorUpdateResponse.php @@ -12,9 +12,7 @@ use ModerationAPI\Authors\AuthorUpdateResponse\TrustLevel; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type AuthorUpdateResponseShape = array{ @@ -35,13 +33,11 @@ * profile_picture?: string|null, * } */ -final class AuthorUpdateResponse implements BaseModel, ResponseConverter +final class AuthorUpdateResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Author ID in Moderation API. */ diff --git a/src/Content/ContentSubmitResponse.php b/src/Content/ContentSubmitResponse.php index da666e2..737caea 100644 --- a/src/Content/ContentSubmitResponse.php +++ b/src/Content/ContentSubmitResponse.php @@ -30,9 +30,7 @@ use ModerationAPI\Content\ContentSubmitResponse\Recommendation\ReasonCode; use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ContentSubmitResponseShape = array{ @@ -46,13 +44,11 @@ * errors?: list|null, * } */ -final class ContentSubmitResponse implements BaseModel, ResponseConverter +final class ContentSubmitResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * The author of the content if your account has authors enabled. Requires you to send authorId when submitting content. */ diff --git a/src/Core/BaseClient.php b/src/Core/BaseClient.php index 8a776ea..f128692 100644 --- a/src/Core/BaseClient.php +++ b/src/Core/BaseClient.php @@ -5,11 +5,13 @@ namespace ModerationAPI\Core; use ModerationAPI\Core\Contracts\BasePage; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Contracts\BaseStream; use ModerationAPI\Core\Conversion\Contracts\Converter; use ModerationAPI\Core\Conversion\Contracts\ConverterSource; use ModerationAPI\Core\Exceptions\APIConnectionException; use ModerationAPI\Core\Exceptions\APIStatusException; +use ModerationAPI\Core\Implementation\RawResponse; use ModerationAPI\RequestOptions; use Psr\Http\Client\ClientExceptionInterface; use Psr\Http\Client\ClientInterface; @@ -51,9 +53,11 @@ public function __construct( * @param string|list $path * @param array $query * @param array $headers - * @param class-string> $page - * @param class-string> $stream + * @param class-string>|null $page + * @param class-string>|null $stream * @param RequestOptions|array|null $options + * + * @return BaseResponse */ public function request( string $method, @@ -65,7 +69,7 @@ public function request( ?string $page = null, ?string $stream = null, RequestOptions|array|null $options = [], - ): mixed { + ): BaseResponse { // @phpstan-ignore-next-line [$req, $opts] = $this->buildRequest(method: $method, path: $path, query: $query, headers: $headers, body: $body, opts: $options); ['method' => $method, 'path' => $uri, 'headers' => $headers] = $req; @@ -74,32 +78,11 @@ public function request( $request = $opts->requestFactory->createRequest($method, uri: $uri); $request = Util::withSetHeaders($request, headers: $headers); - // @phpstan-ignore-next-line + // @phpstan-ignore-next-line argument.type $rsp = $this->sendRequest($opts, req: $request, data: $body, redirectCount: 0, retryCount: 0); - if (!is_null($stream)) { - return new $stream( - convert: $convert, - request: $request, - response: $rsp - ); - } - - if (!is_null($page)) { - return new $page( - convert: $convert, - client: $this, - request: $req, - response: $rsp, - options: $opts, - ); - } - - if (!is_null($convert)) { - return Conversion::coerceResponse($convert, response: $rsp); - } - - return Util::decodeContent($rsp); + // @phpstan-ignore-next-line argument.type + return new RawResponse(client: $this, request: $request, response: $rsp, options: $opts, requestInfo: $req, stream: $stream, page: $page, convert: $convert ?? 'null'); } /** @return array */ diff --git a/src/Core/Concerns/ResponseProxy.php b/src/Core/Concerns/ResponseProxy.php new file mode 100644 index 0000000..91de5b7 --- /dev/null +++ b/src/Core/Concerns/ResponseProxy.php @@ -0,0 +1,101 @@ +response->getProtocolVersion(); + } + + public function withProtocolVersion(string $version): static + { + $self = clone $this; + $self->response = $this->response->withProtocolVersion($version); + + return $self; + } + + public function getHeaders(): array + { + return $this->response->getHeaders(); + } + + public function hasHeader(string $name): bool + { + return $this->response->hasHeader($name); + } + + public function getHeader(string $name): array + { + return $this->response->getHeader($name); + } + + public function getHeaderLine(string $name): string + { + return $this->response->getHeaderLine($name); + } + + public function withHeader(string $name, $value): static + { + $self = clone $this; + $self->response = $this->response->withHeader($name, value: $value); + + return $self; + } + + public function withAddedHeader(string $name, $value): static + { + $self = clone $this; + $self->response = $this->response->withAddedHeader($name, value: $value); + + return $self; + } + + public function withoutHeader(string $name): static + { + $self = clone $this; + $self->response = $this->response->withoutHeader($name); + + return $self; + } + + public function getBody(): StreamInterface + { + return $this->response->getBody(); + } + + public function withBody(StreamInterface $body): static + { + $self = clone $this; + $self->response = $this->response->withBody($body); + + return $self; + } + + public function getStatusCode(): int + { + return $this->response->getStatusCode(); + } + + public function withStatus(int $code, string $reasonPhrase = ''): static + { + $self = clone $this; + $self->response = $this->response->withstatus($code, reasonPhrase: $reasonPhrase); + + return $self; + } + + public function getReasonPhrase(): string + { + return $this->response->getReasonPhrase(); + } +} diff --git a/src/Core/Concerns/SdkPage.php b/src/Core/Concerns/SdkPage.php index 3129dac..930c307 100644 --- a/src/Core/Concerns/SdkPage.php +++ b/src/Core/Concerns/SdkPage.php @@ -5,6 +5,7 @@ namespace ModerationAPI\Core\Concerns; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Conversion\Contracts\Converter; use ModerationAPI\Core\Conversion\Contracts\ConverterSource; use ModerationAPI\Core\Exceptions\APIStatusException; @@ -14,8 +15,6 @@ * @internal * * @template Item - * - * @phpstan-import-type normalized_request from \ModerationAPI\Core\BaseClient */ trait SdkPage { @@ -23,13 +22,6 @@ trait SdkPage private Client $client; - /** - * normalized_request $request. - */ - private array $request; - - private RequestOptions $options; - /** * @return list */ @@ -61,7 +53,11 @@ public function getNextPage(): static [$req, $opts] = $next; // @phpstan-ignore-next-line argument.type - return $this->client->request(...$req, convert: $this->convert, page: $this::class, options: $opts); + /** @var BaseResponse */ + $response = $this->client->request(...$req, convert: $this->convert, page: $this::class, options: $opts); + + // @phpstan-ignore-next-line return.type + return $response->parse(); } /** diff --git a/src/Core/Concerns/SdkResponse.php b/src/Core/Concerns/SdkResponse.php deleted file mode 100644 index 036f8af..0000000 --- a/src/Core/Concerns/SdkResponse.php +++ /dev/null @@ -1,29 +0,0 @@ -_rawResponse = $response; - $instance->__unserialize(Util::decodeContent($response)); // @phpstan-ignore-line - - return $instance; - } - - public function getRawResponse(): ?ResponseInterface - { - return $this->_rawResponse; - } -} diff --git a/src/Core/Contracts/BasePage.php b/src/Core/Contracts/BasePage.php index a1d67c8..e661928 100644 --- a/src/Core/Contracts/BasePage.php +++ b/src/Core/Contracts/BasePage.php @@ -4,12 +4,6 @@ namespace ModerationAPI\Core\Contracts; -use ModerationAPI\Client; -use ModerationAPI\Core\Conversion\Contracts\Converter; -use ModerationAPI\Core\Conversion\Contracts\ConverterSource; -use ModerationAPI\RequestOptions; -use Psr\Http\Message\ResponseInterface; - /** * @internal * @@ -21,19 +15,6 @@ */ interface BasePage extends \IteratorAggregate { - /** - * @internal - * - * @param normalized_request $request - */ - public function __construct( - Converter|ConverterSource|string $convert, - Client $client, - array $request, - RequestOptions $options, - ResponseInterface $response, - ); - public function hasNextPage(): bool; /** diff --git a/src/Core/Contracts/BaseResponse.php b/src/Core/Contracts/BaseResponse.php new file mode 100644 index 0000000..1394a78 --- /dev/null +++ b/src/Core/Contracts/BaseResponse.php @@ -0,0 +1,21 @@ + + * + * @phpstan-import-type normalized_request from \ModerationAPI\Core\BaseClient + */ +class RawResponse implements BaseResponse +{ + use ResponseProxy; + + private mixed $decodedBody; + + /** @var R */ + private mixed $coercedResponse; + + private bool $decoded = false; + private bool $coerced = false; + + /** + * @param normalized_request $requestInfo + */ + public function __construct( + private Client $client, + private RequestOptions $options, + private RequestInterface $request, + private ResponseInterface $response, + private array $requestInfo, + private Converter|ConverterSource|string $convert, + private ?string $page, + private ?string $stream, + ) {} + + public function getRequest(): RequestInterface + { + return $this->request; + } + + public function parse(): mixed + { + if (!$this->coerced) { + if (!is_null($this->stream)) { + // @phpstan-ignore-next-line assign.propertyType + $this->coercedResponse = new $this->stream( + convert: $this->convert, + request: $this->request, + response: $this->response, + parsedBody: $this->getDecoded(), + ); + } elseif (!is_null($this->page)) { + // @phpstan-ignore-next-line assign.propertyType + $this->coercedResponse = new $this->page( + convert: $this->convert, + client: $this->client, + requestInfo: $this->requestInfo, + options: $this->options, + response: $this->response, + parsedBody: $this->getDecoded(), + ); + } else { + // @phpstan-ignore-next-line assign.propertyType + $this->coercedResponse = Conversion::coerce( + $this->convert, + value: $this->getDecoded(), + ); + } + + $this->coerced = true; + } + + return $this->coercedResponse; + } + + private function getDecoded(): mixed + { + if (!$this->decoded) { + $this->decodedBody = Util::decodeContent($this->response); + $this->decoded = true; + } + + return $this->decodedBody; + } +} diff --git a/src/Queue/Items/ItemListResponse.php b/src/Queue/Items/ItemListResponse.php index 0b67006..b040d9e 100644 --- a/src/Queue/Items/ItemListResponse.php +++ b/src/Queue/Items/ItemListResponse.php @@ -6,9 +6,7 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; use ModerationAPI\Queue\Items\ItemListResponse\Item; use ModerationAPI\Queue\Items\ItemListResponse\Item\Action; use ModerationAPI\Queue\Items\ItemListResponse\Item\Label; @@ -20,13 +18,11 @@ * items: list, pagination: Pagination * } */ -final class ItemListResponse implements BaseModel, ResponseConverter +final class ItemListResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** @var list $items */ #[Api(list: Item::class)] public array $items; diff --git a/src/Queue/Items/ItemResolveResponse.php b/src/Queue/Items/ItemResolveResponse.php index 60807dd..daef45e 100644 --- a/src/Queue/Items/ItemResolveResponse.php +++ b/src/Queue/Items/ItemResolveResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ItemResolveResponseShape = array{ * resolvedAt: string, success: bool, comment?: string|null * } */ -final class ItemResolveResponse implements BaseModel, ResponseConverter +final class ItemResolveResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Timestamp when the item was resolved. */ diff --git a/src/Queue/Items/ItemUnresolveResponse.php b/src/Queue/Items/ItemUnresolveResponse.php index 3d6461e..d93919c 100644 --- a/src/Queue/Items/ItemUnresolveResponse.php +++ b/src/Queue/Items/ItemUnresolveResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type ItemUnresolveResponseShape = array{ * status: string, success: bool, unresolvedAt: string * } */ -final class ItemUnresolveResponse implements BaseModel, ResponseConverter +final class ItemUnresolveResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * New status of the item. */ diff --git a/src/Queue/QueueGetResponse.php b/src/Queue/QueueGetResponse.php index af18df9..6f114ec 100644 --- a/src/Queue/QueueGetResponse.php +++ b/src/Queue/QueueGetResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; use ModerationAPI\Queue\QueueGetResponse\Queue; use ModerationAPI\Queue\QueueGetResponse\Queue\Filter; /** * @phpstan-type QueueGetResponseShape = array{queue: Queue} */ -final class QueueGetResponse implements BaseModel, ResponseConverter +final class QueueGetResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - #[Api] public Queue $queue; diff --git a/src/Queue/QueueGetStatsResponse.php b/src/Queue/QueueGetStatsResponse.php index 288998c..b26bbd2 100644 --- a/src/Queue/QueueGetStatsResponse.php +++ b/src/Queue/QueueGetStatsResponse.php @@ -6,9 +6,7 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; use ModerationAPI\Queue\QueueGetStatsResponse\ActionStat; use ModerationAPI\Queue\QueueGetStatsResponse\ReviewStats; use ModerationAPI\Queue\QueueGetStatsResponse\TopReviewer; @@ -25,13 +23,11 @@ * trends: Trends, * } */ -final class QueueGetStatsResponse implements BaseModel, ResponseConverter +final class QueueGetStatsResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** @var list $actionStats */ #[Api(list: ActionStat::class)] public array $actionStats; diff --git a/src/Services/AccountService.php b/src/Services/AccountService.php index 178884e..e9ba9b3 100644 --- a/src/Services/AccountService.php +++ b/src/Services/AccountService.php @@ -6,6 +6,7 @@ use ModerationAPI\Account\AccountListResponse; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; use ModerationAPI\ServiceContracts\AccountContract; @@ -27,12 +28,14 @@ public function __construct(private Client $client) {} public function list( ?RequestOptions $requestOptions = null ): AccountListResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: 'account', options: $requestOptions, convert: AccountListResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/Actions/ExecuteService.php b/src/Services/Actions/ExecuteService.php index 0e4fd42..2b5e9d1 100644 --- a/src/Services/Actions/ExecuteService.php +++ b/src/Services/Actions/ExecuteService.php @@ -9,6 +9,7 @@ use ModerationAPI\Actions\Execute\ExecuteExecuteParams; use ModerationAPI\Actions\Execute\ExecuteExecuteResponse; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; use ModerationAPI\ServiceContracts\Actions\ExecuteContract; @@ -45,14 +46,16 @@ public function execute( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: 'actions/execute', body: (object) $parsed, options: $options, convert: ExecuteExecuteResponse::class, ); + + return $response->parse(); } /** @@ -81,13 +84,15 @@ public function executeByID( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: ['actions/%1$s/execute', $actionID], body: (object) $parsed, options: $options, convert: ExecuteExecuteByIDResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/ActionsService.php b/src/Services/ActionsService.php index 4f9690f..d648767 100644 --- a/src/Services/ActionsService.php +++ b/src/Services/ActionsService.php @@ -14,6 +14,7 @@ use ModerationAPI\Actions\ActionUpdateParams; use ModerationAPI\Actions\ActionUpdateResponse; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Conversion\ListOf; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; @@ -68,14 +69,16 @@ public function create( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: 'actions', body: (object) $parsed, options: $options, convert: ActionNewResponse::class, ); + + return $response->parse(); } /** @@ -89,13 +92,15 @@ public function retrieve( string $id, ?RequestOptions $requestOptions = null ): ActionGetResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: ['actions/%1$s', $id], options: $requestOptions, convert: ActionGetResponse::class, ); + + return $response->parse(); } /** @@ -132,14 +137,16 @@ public function update( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'put', path: ['actions/%1$s', $id], body: (object) $parsed, options: $options, convert: ActionUpdateResponse::class, ); + + return $response->parse(); } /** @@ -162,14 +169,16 @@ public function list( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse> */ + $response = $this->client->request( method: 'get', path: 'actions', query: $parsed, options: $options, convert: new ListOf(ActionListResponseItem::class), ); + + return $response->parse(); } /** @@ -183,12 +192,14 @@ public function delete( string $id, ?RequestOptions $requestOptions = null ): ActionDeleteResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'delete', path: ['actions/%1$s', $id], options: $requestOptions, convert: ActionDeleteResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/AuthService.php b/src/Services/AuthService.php index 1bc5445..f98f5da 100644 --- a/src/Services/AuthService.php +++ b/src/Services/AuthService.php @@ -7,6 +7,7 @@ use ModerationAPI\Auth\AuthGetResponse; use ModerationAPI\Auth\AuthNewResponse; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; use ModerationAPI\ServiceContracts\AuthContract; @@ -28,13 +29,15 @@ public function __construct(private Client $client) {} public function create( ?RequestOptions $requestOptions = null ): AuthNewResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: 'auth', options: $requestOptions, convert: AuthNewResponse::class, ); + + return $response->parse(); } /** @@ -47,12 +50,14 @@ public function create( public function retrieve( ?RequestOptions $requestOptions = null ): AuthGetResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: 'auth', options: $requestOptions, convert: AuthGetResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/AuthorsService.php b/src/Services/AuthorsService.php index 3299d7a..8ee1b4e 100644 --- a/src/Services/AuthorsService.php +++ b/src/Services/AuthorsService.php @@ -14,6 +14,7 @@ use ModerationAPI\Authors\AuthorUpdateParams; use ModerationAPI\Authors\AuthorUpdateResponse; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; use ModerationAPI\ServiceContracts\AuthorsContract; @@ -58,14 +59,16 @@ public function create( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: 'authors', body: (object) $parsed, options: $options, convert: AuthorNewResponse::class, ); + + return $response->parse(); } /** @@ -79,13 +82,15 @@ public function retrieve( string $id, ?RequestOptions $requestOptions = null ): AuthorGetResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: ['authors/%1$s', $id], options: $requestOptions, convert: AuthorGetResponse::class, ); + + return $response->parse(); } /** @@ -121,14 +126,16 @@ public function update( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'put', path: ['authors/%1$s', $id], body: (object) $parsed, options: $options, convert: AuthorUpdateResponse::class, ); + + return $response->parse(); } /** @@ -157,14 +164,16 @@ public function list( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: 'authors', query: $parsed, options: $options, convert: AuthorListResponse::class, ); + + return $response->parse(); } /** @@ -178,12 +187,14 @@ public function delete( string $id, ?RequestOptions $requestOptions = null ): AuthorDeleteResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'delete', path: ['authors/%1$s', $id], options: $requestOptions, convert: AuthorDeleteResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/ContentService.php b/src/Services/ContentService.php index 96fafa9..92459a2 100644 --- a/src/Services/ContentService.php +++ b/src/Services/ContentService.php @@ -7,6 +7,7 @@ use ModerationAPI\Client; use ModerationAPI\Content\ContentSubmitParams; use ModerationAPI\Content\ContentSubmitResponse; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; use ModerationAPI\ServiceContracts\ContentContract; @@ -44,13 +45,15 @@ public function submit( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: 'moderate', body: (object) $parsed, options: $options, convert: ContentSubmitResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/Queue/ItemsService.php b/src/Services/Queue/ItemsService.php index abfff73..8f2ef46 100644 --- a/src/Services/Queue/ItemsService.php +++ b/src/Services/Queue/ItemsService.php @@ -5,6 +5,7 @@ namespace ModerationAPI\Services\Queue; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\Queue\Items\ItemListParams; use ModerationAPI\Queue\Items\ItemListResponse; @@ -53,14 +54,16 @@ public function list( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: ['queue/%1$s/items', $id], query: $parsed, options: $options, convert: ItemListResponse::class, ); + + return $response->parse(); } /** @@ -84,14 +87,16 @@ public function resolve( $id = $parsed['id']; unset($parsed['id']); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: ['queue/%1$s/items/%2$s/resolve', $id, $itemID], body: (object) array_diff_key($parsed, ['id']), options: $options, convert: ItemResolveResponse::class, ); + + return $response->parse(); } /** @@ -115,13 +120,15 @@ public function unresolve( $id = $parsed['id']; unset($parsed['id']); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: ['queue/%1$s/items/%2$s/unresolve', $id, $itemID], body: (object) array_diff_key($parsed, ['id']), options: $options, convert: ItemUnresolveResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/QueueService.php b/src/Services/QueueService.php index 1096935..a584103 100644 --- a/src/Services/QueueService.php +++ b/src/Services/QueueService.php @@ -5,6 +5,7 @@ namespace ModerationAPI\Services; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\Queue\QueueGetResponse; use ModerationAPI\Queue\QueueGetStatsParams; @@ -39,13 +40,15 @@ public function retrieve( string $id, ?RequestOptions $requestOptions = null ): QueueGetResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: ['queue/%1$s', $id], options: $requestOptions, convert: QueueGetResponse::class, ); + + return $response->parse(); } /** @@ -67,13 +70,15 @@ public function getStats( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: ['queue/%1$s/stats', $id], query: $parsed, options: $options, convert: QueueGetStatsResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/Wordlist/WordsService.php b/src/Services/Wordlist/WordsService.php index 7e34156..06ebdb1 100644 --- a/src/Services/Wordlist/WordsService.php +++ b/src/Services/Wordlist/WordsService.php @@ -5,6 +5,7 @@ namespace ModerationAPI\Services\Wordlist; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; use ModerationAPI\ServiceContracts\Wordlist\WordsContract; @@ -39,14 +40,16 @@ public function add( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'post', path: ['wordlist/%1$s/words', $id], body: (object) $parsed, options: $options, convert: WordAddResponse::class, ); + + return $response->parse(); } /** @@ -68,13 +71,15 @@ public function remove( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'delete', path: ['wordlist/%1$s/words', $id], query: $parsed, options: $options, convert: WordRemoveResponse::class, ); + + return $response->parse(); } } diff --git a/src/Services/WordlistService.php b/src/Services/WordlistService.php index d5cd165..b4f6619 100644 --- a/src/Services/WordlistService.php +++ b/src/Services/WordlistService.php @@ -5,6 +5,7 @@ namespace ModerationAPI\Services; use ModerationAPI\Client; +use ModerationAPI\Core\Contracts\BaseResponse; use ModerationAPI\Core\Conversion\ListOf; use ModerationAPI\Core\Exceptions\APIException; use ModerationAPI\RequestOptions; @@ -42,13 +43,15 @@ public function retrieve( string $id, ?RequestOptions $requestOptions = null ): WordlistGetResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: ['wordlist/%1$s', $id], options: $requestOptions, convert: WordlistGetResponse::class, ); + + return $response->parse(); } /** @@ -76,14 +79,16 @@ public function update( $requestOptions, ); - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'put', path: ['wordlist/%1$s', $id], body: (object) $parsed, options: $options, convert: WordlistUpdateResponse::class, ); + + return $response->parse(); } /** @@ -97,13 +102,15 @@ public function update( */ public function list(?RequestOptions $requestOptions = null): array { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse> */ + $response = $this->client->request( method: 'get', path: 'wordlist', options: $requestOptions, convert: new ListOf(WordlistListResponseItem::class), ); + + return $response->parse(); } /** @@ -117,12 +124,14 @@ public function getEmbeddingStatus( string $id, ?RequestOptions $requestOptions = null ): WordlistGetEmbeddingStatusResponse { - // @phpstan-ignore-next-line return.type - return $this->client->request( + /** @var BaseResponse */ + $response = $this->client->request( method: 'get', path: ['wordlist/%1$s/embedding-status', $id], options: $requestOptions, convert: WordlistGetEmbeddingStatusResponse::class, ); + + return $response->parse(); } } diff --git a/src/Wordlist/WordlistGetEmbeddingStatusResponse.php b/src/Wordlist/WordlistGetEmbeddingStatusResponse.php index 72b5cec..7b2ce3b 100644 --- a/src/Wordlist/WordlistGetEmbeddingStatusResponse.php +++ b/src/Wordlist/WordlistGetEmbeddingStatusResponse.php @@ -6,9 +6,7 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * Embedding status details. @@ -17,13 +15,11 @@ * progress: float, remainingWords: float, totalWords: float * } */ -final class WordlistGetEmbeddingStatusResponse implements BaseModel, ResponseConverter +final class WordlistGetEmbeddingStatusResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Percentage of words that have been embedded (0-100). */ diff --git a/src/Wordlist/WordlistGetResponse.php b/src/Wordlist/WordlistGetResponse.php index 855b6bb..90ce270 100644 --- a/src/Wordlist/WordlistGetResponse.php +++ b/src/Wordlist/WordlistGetResponse.php @@ -6,9 +6,7 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type WordlistGetResponseShape = array{ @@ -21,13 +19,11 @@ * words: list, * } */ -final class WordlistGetResponse implements BaseModel, ResponseConverter +final class WordlistGetResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * ID of the wordlist. */ diff --git a/src/Wordlist/WordlistUpdateResponse.php b/src/Wordlist/WordlistUpdateResponse.php index 69fa556..939955e 100644 --- a/src/Wordlist/WordlistUpdateResponse.php +++ b/src/Wordlist/WordlistUpdateResponse.php @@ -6,9 +6,7 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type WordlistUpdateResponseShape = array{ @@ -21,13 +19,11 @@ * words: list, * } */ -final class WordlistUpdateResponse implements BaseModel, ResponseConverter +final class WordlistUpdateResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * ID of the wordlist. */ diff --git a/src/Wordlist/Words/WordAddResponse.php b/src/Wordlist/Words/WordAddResponse.php index 016e3c5..1989353 100644 --- a/src/Wordlist/Words/WordAddResponse.php +++ b/src/Wordlist/Words/WordAddResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type WordAddResponseShape = array{ * addedCount: float, addedWords: list, totalCount: float * } */ -final class WordAddResponse implements BaseModel, ResponseConverter +final class WordAddResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Number of words added. */ diff --git a/src/Wordlist/Words/WordRemoveResponse.php b/src/Wordlist/Words/WordRemoveResponse.php index 5179d12..f91debf 100644 --- a/src/Wordlist/Words/WordRemoveResponse.php +++ b/src/Wordlist/Words/WordRemoveResponse.php @@ -6,22 +6,18 @@ use ModerationAPI\Core\Attributes\Api; use ModerationAPI\Core\Concerns\SdkModel; -use ModerationAPI\Core\Concerns\SdkResponse; use ModerationAPI\Core\Contracts\BaseModel; -use ModerationAPI\Core\Conversion\Contracts\ResponseConverter; /** * @phpstan-type WordRemoveResponseShape = array{ * removedCount: float, removedWords: list, totalCount: float * } */ -final class WordRemoveResponse implements BaseModel, ResponseConverter +final class WordRemoveResponse implements BaseModel { /** @use SdkModel */ use SdkModel; - use SdkResponse; - /** * Number of words removed. */ From 0b40edaeadad1f12f6066b520829c057a05927f3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 06:09:58 +0000 Subject: [PATCH 2/7] chore: switch from `#[Api(optional: true|false)]` to `#[Required]|#[Optional]` for annotations --- src/Account/AccountListResponse.php | 13 +++---- .../AccountListResponse/CurrentProject.php | 6 ++-- src/Actions/ActionCreateParams.php | 27 +++++++------- .../ActionCreateParams/PossibleValue.php | 4 +-- src/Actions/ActionCreateParams/Webhook.php | 11 +++--- src/Actions/ActionDeleteResponse.php | 6 ++-- src/Actions/ActionGetResponse.php | 31 ++++++++-------- .../ActionGetResponse/PossibleValue.php | 4 +-- src/Actions/ActionGetResponse/Webhook.php | 13 +++---- src/Actions/ActionListParams.php | 4 +-- src/Actions/ActionListResponseItem.php | 31 ++++++++-------- .../ActionListResponseItem/PossibleValue.php | 4 +-- .../ActionListResponseItem/Webhook.php | 13 +++---- src/Actions/ActionNewResponse.php | 29 +++++++-------- .../ActionNewResponse/PossibleValue.php | 4 +-- src/Actions/ActionUpdateParams.php | 26 +++++++------- .../ActionUpdateParams/PossibleValue.php | 4 +-- src/Actions/ActionUpdateParams/Webhook.php | 11 +++--- src/Actions/ActionUpdateResponse.php | 29 +++++++-------- .../ActionUpdateResponse/PossibleValue.php | 4 +-- .../Execute/ExecuteExecuteByIDParams.php | 10 +++--- .../Execute/ExecuteExecuteByIDResponse.php | 8 ++--- src/Actions/Execute/ExecuteExecuteParams.php | 15 ++++---- .../Execute/ExecuteExecuteResponse.php | 4 +-- src/Auth/AuthGetResponse.php | 6 ++-- src/Auth/AuthNewResponse.php | 8 ++--- src/Authors/AuthorCreateParams.php | 21 +++++------ src/Authors/AuthorCreateParams/Metadata.php | 10 +++--- src/Authors/AuthorDeleteResponse.php | 4 +-- src/Authors/AuthorGetResponse.php | 33 ++++++++--------- src/Authors/AuthorGetResponse/Block.php | 6 ++-- src/Authors/AuthorGetResponse/Metadata.php | 10 +++--- src/Authors/AuthorGetResponse/Metrics.php | 9 ++--- .../AuthorGetResponse/RiskEvaluation.php | 4 +-- src/Authors/AuthorGetResponse/TrustLevel.php | 6 ++-- src/Authors/AuthorListParams.php | 16 ++++----- src/Authors/AuthorListResponse.php | 6 ++-- src/Authors/AuthorListResponse/Author.php | 33 ++++++++--------- .../AuthorListResponse/Author/Block.php | 6 ++-- .../AuthorListResponse/Author/Metadata.php | 10 +++--- .../AuthorListResponse/Author/Metrics.php | 9 ++--- .../Author/RiskEvaluation.php | 4 +-- .../AuthorListResponse/Author/TrustLevel.php | 6 ++-- src/Authors/AuthorListResponse/Pagination.php | 12 +++---- src/Authors/AuthorNewResponse.php | 33 ++++++++--------- src/Authors/AuthorNewResponse/Block.php | 6 ++-- src/Authors/AuthorNewResponse/Metadata.php | 10 +++--- src/Authors/AuthorNewResponse/Metrics.php | 9 ++--- .../AuthorNewResponse/RiskEvaluation.php | 4 +-- src/Authors/AuthorNewResponse/TrustLevel.php | 6 ++-- src/Authors/AuthorUpdateParams.php | 18 +++++----- src/Authors/AuthorUpdateParams/Metadata.php | 10 +++--- src/Authors/AuthorUpdateResponse.php | 33 ++++++++--------- src/Authors/AuthorUpdateResponse/Block.php | 6 ++-- src/Authors/AuthorUpdateResponse/Metadata.php | 10 +++--- src/Authors/AuthorUpdateResponse/Metrics.php | 9 ++--- .../AuthorUpdateResponse/RiskEvaluation.php | 4 +-- .../AuthorUpdateResponse/TrustLevel.php | 6 ++-- src/Content/ContentSubmitParams.php | 21 +++++------ .../ContentSubmitParams/Content/Audio.php | 6 ++-- .../ContentSubmitParams/Content/Image.php | 6 ++-- .../ContentSubmitParams/Content/Object1.php | 6 ++-- .../Content/Object1/Data/Audio.php | 6 ++-- .../Content/Object1/Data/Image.php | 6 ++-- .../Content/Object1/Data/Text.php | 6 ++-- .../Content/Object1/Data/Video.php | 6 ++-- .../ContentSubmitParams/Content/Text.php | 6 ++-- .../ContentSubmitParams/Content/Video.php | 6 ++-- .../ContentSubmitParams/Policy/CodeAbuse.php | 6 ++-- .../ContentSubmitParams/Policy/Flirtation.php | 6 ++-- .../ContentSubmitParams/Policy/Guideline.php | 10 +++--- .../ContentSubmitParams/Policy/Hate.php | 6 ++-- .../ContentSubmitParams/Policy/Illicit.php | 6 ++-- .../Policy/IllicitAlcohol.php | 6 ++-- .../Policy/IllicitDrugs.php | 6 ++-- .../Policy/IllicitFirearms.php | 6 ++-- .../Policy/IllicitGambling.php | 6 ++-- .../Policy/IllicitTobacco.php | 6 ++-- .../Policy/PersonalInformation.php | 6 ++-- .../ContentSubmitParams/Policy/PiiMasking.php | 6 ++-- .../Policy/PiiMasking/Entity.php | 13 +++---- .../ContentSubmitParams/Policy/Political.php | 6 ++-- .../ContentSubmitParams/Policy/Profanity.php | 6 ++-- .../ContentSubmitParams/Policy/Religion.php | 6 ++-- .../ContentSubmitParams/Policy/SelfHarm.php | 6 ++-- .../Policy/SelfPromotion.php | 6 ++-- .../ContentSubmitParams/Policy/Sexual.php | 6 ++-- .../ContentSubmitParams/Policy/Spam.php | 6 ++-- .../ContentSubmitParams/Policy/Toxicity.php | 6 ++-- .../Policy/ToxicitySevere.php | 6 ++-- .../ContentSubmitParams/Policy/URLMasking.php | 6 ++-- .../Policy/URLMasking/Entity.php | 13 +++---- .../ContentSubmitParams/Policy/Violence.php | 6 ++-- src/Content/ContentSubmitResponse.php | 19 +++++----- src/Content/ContentSubmitResponse/Author.php | 13 +++---- .../ContentSubmitResponse/Author/Block.php | 6 ++-- .../Author/TrustLevel.php | 6 ++-- src/Content/ContentSubmitResponse/Content.php | 8 ++--- .../ModifiedNestedObjectContent/Audio.php | 6 ++-- .../ModifiedNestedObjectContent/Image.php | 6 ++-- .../ModifiedNestedObjectContent/Text.php | 6 ++-- .../ModifiedNestedObjectContent/Video.php | 6 ++-- src/Content/ContentSubmitResponse/Error.php | 6 ++-- .../ContentSubmitResponse/Evaluation.php | 11 +++--- .../Insight/LanguageInsight.php | 10 +++--- .../Insight/SentimentInsight.php | 10 +++--- src/Content/ContentSubmitResponse/Meta.php | 13 +++---- .../Policy/ClassifierOutput.php | 15 ++++---- .../Policy/ClassifierOutput/Label.php | 8 ++--- .../Policy/EntityMatcherOutput.php | 15 ++++---- .../Policy/EntityMatcherOutput/Match1.php | 8 ++--- .../ContentSubmitResponse/Recommendation.php | 6 ++-- src/Core/Attributes/Optional.php | 35 +++++++++++++++++++ src/Core/Attributes/{Api.php => Required.php} | 23 ++++++++---- src/Core/Conversion/ModelOf.php | 10 ++++-- src/Core/Conversion/PropertyInfo.php | 8 +++-- src/Queue/Items/ItemListParams.php | 24 ++++++------- src/Queue/Items/ItemListResponse.php | 6 ++-- src/Queue/Items/ItemListResponse/Item.php | 25 ++++++------- .../Items/ItemListResponse/Item/Action.php | 13 +++---- .../Items/ItemListResponse/Item/Label.php | 8 ++--- .../Items/ItemListResponse/Pagination.php | 12 +++---- src/Queue/Items/ItemResolveParams.php | 7 ++-- src/Queue/Items/ItemResolveResponse.php | 9 ++--- src/Queue/Items/ItemUnresolveParams.php | 7 ++-- src/Queue/Items/ItemUnresolveResponse.php | 8 ++--- src/Queue/QueueGetResponse.php | 4 +-- src/Queue/QueueGetResponse/Queue.php | 16 ++++----- src/Queue/QueueGetResponse/Queue/Filter.php | 22 ++++++------ .../Queue/Filter/FilterLabel.php | 11 +++--- src/Queue/QueueGetStatsParams.php | 4 +-- src/Queue/QueueGetStatsResponse.php | 10 +++--- .../QueueGetStatsResponse/ActionStat.php | 10 +++--- .../QueueGetStatsResponse/ReviewStats.php | 8 ++--- .../QueueGetStatsResponse/TopReviewer.php | 15 ++++---- .../TopReviewer/TopAction.php | 8 ++--- src/Queue/QueueGetStatsResponse/Trends.php | 6 ++-- .../Trends/DailyReviewCount.php | 6 ++-- .../Trends/FlaggedContentTrend.php | 6 ++-- src/RequestOptions.php | 17 ++++----- .../WordlistGetEmbeddingStatusResponse.php | 8 ++--- src/Wordlist/WordlistGetResponse.php | 16 ++++----- src/Wordlist/WordlistListResponseItem.php | 12 +++---- src/Wordlist/WordlistUpdateParams.php | 12 +++---- src/Wordlist/WordlistUpdateResponse.php | 16 ++++----- src/Wordlist/Words/WordAddParams.php | 4 +-- src/Wordlist/Words/WordAddResponse.php | 8 ++--- src/Wordlist/Words/WordRemoveParams.php | 4 +-- src/Wordlist/Words/WordRemoveResponse.php | 8 ++--- tests/Core/TestModel.php | 11 +++--- 150 files changed, 820 insertions(+), 732 deletions(-) create mode 100644 src/Core/Attributes/Optional.php rename src/Core/Attributes/{Api.php => Required.php} (77%) diff --git a/src/Account/AccountListResponse.php b/src/Account/AccountListResponse.php index a95a3f0..f108fe9 100644 --- a/src/Account/AccountListResponse.php +++ b/src/Account/AccountListResponse.php @@ -5,7 +5,8 @@ namespace ModerationAPI\Account; use ModerationAPI\Account\AccountListResponse\CurrentProject; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,28 +27,28 @@ final class AccountListResponse implements BaseModel /** * ID of the account. */ - #[Api] + #[Required] public string $id; /** * Name of the paid plan. */ - #[Api] + #[Required] public string $paid_plan_name; /** * Remaining quota. */ - #[Api] + #[Required] public float $remaining_quota; /** * Text API quota. */ - #[Api] + #[Required] public float $text_api_quota; - #[Api(optional: true)] + #[Optional] public ?CurrentProject $current_project; /** diff --git a/src/Account/AccountListResponse/CurrentProject.php b/src/Account/AccountListResponse/CurrentProject.php index fe034aa..773c2a8 100644 --- a/src/Account/AccountListResponse/CurrentProject.php +++ b/src/Account/AccountListResponse/CurrentProject.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Account\AccountListResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class CurrentProject implements BaseModel /** * ID of the current project. */ - #[Api] + #[Required] public string $id; /** * Name of the current project. */ - #[Api] + #[Required] public string $name; /** diff --git a/src/Actions/ActionCreateParams.php b/src/Actions/ActionCreateParams.php index 7f9b449..308f05c 100644 --- a/src/Actions/ActionCreateParams.php +++ b/src/Actions/ActionCreateParams.php @@ -9,7 +9,8 @@ use ModerationAPI\Actions\ActionCreateParams\QueueBehaviour; use ModerationAPI\Actions\ActionCreateParams\Type; use ModerationAPI\Actions\ActionCreateParams\Webhook; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -45,19 +46,19 @@ final class ActionCreateParams implements BaseModel /** * The name of the action. */ - #[Api] + #[Required] public string $name; /** * Whether the action is a built-in action or a custom one. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $builtIn; /** * The description of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** @@ -65,19 +66,19 @@ final class ActionCreateParams implements BaseModel * * @var list|null $filterInQueueIds */ - #[Api(list: 'string', optional: true)] + #[Optional(list: 'string')] public ?array $filterInQueueIds; /** * Whether the action allows any text to be entered as a value or if it must be one of the possible values. */ - #[Api(optional: true)] + #[Optional] public ?bool $freeText; /** * User defined key of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $key; /** @@ -85,7 +86,7 @@ final class ActionCreateParams implements BaseModel * * @var value-of|null $position */ - #[Api(enum: Position::class, optional: true)] + #[Optional(enum: Position::class)] public ?string $position; /** @@ -93,7 +94,7 @@ final class ActionCreateParams implements BaseModel * * @var list|null $possibleValues */ - #[Api(list: PossibleValue::class, optional: true)] + #[Optional(list: PossibleValue::class)] public ?array $possibleValues; /** @@ -101,7 +102,7 @@ final class ActionCreateParams implements BaseModel * * @var value-of|null $queueBehaviour */ - #[Api(enum: QueueBehaviour::class, optional: true)] + #[Optional(enum: QueueBehaviour::class)] public ?string $queueBehaviour; /** @@ -109,13 +110,13 @@ final class ActionCreateParams implements BaseModel * * @var value-of|null $type */ - #[Api(enum: Type::class, nullable: true, optional: true)] + #[Optional(enum: Type::class, nullable: true)] public ?string $type; /** * Whether the action requires a value to be executed. */ - #[Api(optional: true)] + #[Optional] public ?bool $valueRequired; /** @@ -123,7 +124,7 @@ final class ActionCreateParams implements BaseModel * * @var list|null $webhooks */ - #[Api(list: Webhook::class, optional: true)] + #[Optional(list: Webhook::class)] public ?array $webhooks; /** diff --git a/src/Actions/ActionCreateParams/PossibleValue.php b/src/Actions/ActionCreateParams/PossibleValue.php index 94d8a1a..a600acd 100644 --- a/src/Actions/ActionCreateParams/PossibleValue.php +++ b/src/Actions/ActionCreateParams/PossibleValue.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\ActionCreateParams; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,7 +19,7 @@ final class PossibleValue implements BaseModel /** * The value of the action. */ - #[Api] + #[Required] public string $value; /** diff --git a/src/Actions/ActionCreateParams/Webhook.php b/src/Actions/ActionCreateParams/Webhook.php index 7e4f09a..952f5d3 100644 --- a/src/Actions/ActionCreateParams/Webhook.php +++ b/src/Actions/ActionCreateParams/Webhook.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Actions\ActionCreateParams; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,25 +22,25 @@ final class Webhook implements BaseModel /** * The webhook's name, used to identify it in the dashboard. */ - #[Api] + #[Required] public string $name; /** * The webhook's URL. We'll call this URL when the event occurs. */ - #[Api] + #[Required] public string $url; /** * ID of an existing webhook or undefined if this is a new webhook. */ - #[Api(optional: true)] + #[Optional] public ?string $id; /** * The webhook's description. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** diff --git a/src/Actions/ActionDeleteResponse.php b/src/Actions/ActionDeleteResponse.php index a0d25f0..751a435 100644 --- a/src/Actions/ActionDeleteResponse.php +++ b/src/Actions/ActionDeleteResponse.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class ActionDeleteResponse implements BaseModel /** * The ID of the action. */ - #[Api] + #[Required] public string $id; /** * Whether the action was deleted. */ - #[Api] + #[Required] public bool $deleted; /** diff --git a/src/Actions/ActionGetResponse.php b/src/Actions/ActionGetResponse.php index e512268..671f397 100644 --- a/src/Actions/ActionGetResponse.php +++ b/src/Actions/ActionGetResponse.php @@ -9,7 +9,8 @@ use ModerationAPI\Actions\ActionGetResponse\QueueBehaviour; use ModerationAPI\Actions\ActionGetResponse\Type; use ModerationAPI\Actions\ActionGetResponse\Webhook; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -39,19 +40,19 @@ final class ActionGetResponse implements BaseModel /** * The ID of the action. */ - #[Api] + #[Required] public string $id; /** * Whether the action is a built-in action or a custom one. */ - #[Api] + #[Required] public ?bool $builtIn; /** * The date the action was created. */ - #[Api] + #[Required] public string $createdAt; /** @@ -59,19 +60,19 @@ final class ActionGetResponse implements BaseModel * * @var list $filterInQueueIds */ - #[Api(list: 'string')] + #[Required(list: 'string')] public array $filterInQueueIds; /** * Whether the action allows any text to be entered as a value or if it must be one of the possible values. */ - #[Api] + #[Required] public bool $freeText; /** * The name of the action. */ - #[Api] + #[Required] public string $name; /** @@ -79,7 +80,7 @@ final class ActionGetResponse implements BaseModel * * @var value-of $position */ - #[Api(enum: Position::class)] + #[Required(enum: Position::class)] public string $position; /** @@ -87,7 +88,7 @@ final class ActionGetResponse implements BaseModel * * @var list $possibleValues */ - #[Api(list: PossibleValue::class)] + #[Required(list: PossibleValue::class)] public array $possibleValues; /** @@ -95,13 +96,13 @@ final class ActionGetResponse implements BaseModel * * @var value-of $queueBehaviour */ - #[Api(enum: QueueBehaviour::class)] + #[Required(enum: QueueBehaviour::class)] public string $queueBehaviour; /** * Whether the action requires a value to be executed. */ - #[Api] + #[Required] public bool $valueRequired; /** @@ -109,19 +110,19 @@ final class ActionGetResponse implements BaseModel * * @var list $webhooks */ - #[Api(list: Webhook::class)] + #[Required(list: Webhook::class)] public array $webhooks; /** * The description of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** * User defined key of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $key; /** @@ -129,7 +130,7 @@ final class ActionGetResponse implements BaseModel * * @var value-of|null $type */ - #[Api(enum: Type::class, nullable: true, optional: true)] + #[Optional(enum: Type::class, nullable: true)] public ?string $type; /** diff --git a/src/Actions/ActionGetResponse/PossibleValue.php b/src/Actions/ActionGetResponse/PossibleValue.php index 012ad96..ac20792 100644 --- a/src/Actions/ActionGetResponse/PossibleValue.php +++ b/src/Actions/ActionGetResponse/PossibleValue.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\ActionGetResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,7 +19,7 @@ final class PossibleValue implements BaseModel /** * The value of the action. */ - #[Api] + #[Required] public string $value; /** diff --git a/src/Actions/ActionGetResponse/Webhook.php b/src/Actions/ActionGetResponse/Webhook.php index 7bd6f83..cc10b32 100644 --- a/src/Actions/ActionGetResponse/Webhook.php +++ b/src/Actions/ActionGetResponse/Webhook.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Actions\ActionGetResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -25,31 +26,31 @@ final class Webhook implements BaseModel /** * The ID of the webhook. */ - #[Api] + #[Required] public string $id; /** * The webhook's name, used to identify it in the dashboard. */ - #[Api] + #[Required] public string $name; /** * The webhook's URL. We'll call this URL when the event occurs. */ - #[Api] + #[Required] public string $url; /** * The webhook's description. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** * The ID of the moderation action to trigger the webhook on. Only used for moderation action webhooks. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $moderationActionId; /** diff --git a/src/Actions/ActionListParams.php b/src/Actions/ActionListParams.php index 7f13d32..9bf3427 100644 --- a/src/Actions/ActionListParams.php +++ b/src/Actions/ActionListParams.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -22,7 +22,7 @@ final class ActionListParams implements BaseModel use SdkModel; use SdkParams; - #[Api(optional: true)] + #[Optional] public ?string $queueId; public function __construct() diff --git a/src/Actions/ActionListResponseItem.php b/src/Actions/ActionListResponseItem.php index 326c585..5f06a44 100644 --- a/src/Actions/ActionListResponseItem.php +++ b/src/Actions/ActionListResponseItem.php @@ -9,7 +9,8 @@ use ModerationAPI\Actions\ActionListResponseItem\QueueBehaviour; use ModerationAPI\Actions\ActionListResponseItem\Type; use ModerationAPI\Actions\ActionListResponseItem\Webhook; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -39,19 +40,19 @@ final class ActionListResponseItem implements BaseModel /** * The ID of the action. */ - #[Api] + #[Required] public string $id; /** * Whether the action is a built-in action or a custom one. */ - #[Api] + #[Required] public ?bool $builtIn; /** * The date the action was created. */ - #[Api] + #[Required] public string $createdAt; /** @@ -59,19 +60,19 @@ final class ActionListResponseItem implements BaseModel * * @var list $filterInQueueIds */ - #[Api(list: 'string')] + #[Required(list: 'string')] public array $filterInQueueIds; /** * Whether the action allows any text to be entered as a value or if it must be one of the possible values. */ - #[Api] + #[Required] public bool $freeText; /** * The name of the action. */ - #[Api] + #[Required] public string $name; /** @@ -79,7 +80,7 @@ final class ActionListResponseItem implements BaseModel * * @var value-of $position */ - #[Api(enum: Position::class)] + #[Required(enum: Position::class)] public string $position; /** @@ -87,7 +88,7 @@ final class ActionListResponseItem implements BaseModel * * @var list $possibleValues */ - #[Api(list: PossibleValue::class)] + #[Required(list: PossibleValue::class)] public array $possibleValues; /** @@ -95,13 +96,13 @@ final class ActionListResponseItem implements BaseModel * * @var value-of $queueBehaviour */ - #[Api(enum: QueueBehaviour::class)] + #[Required(enum: QueueBehaviour::class)] public string $queueBehaviour; /** * Whether the action requires a value to be executed. */ - #[Api] + #[Required] public bool $valueRequired; /** @@ -109,19 +110,19 @@ final class ActionListResponseItem implements BaseModel * * @var list $webhooks */ - #[Api(list: Webhook::class)] + #[Required(list: Webhook::class)] public array $webhooks; /** * The description of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** * User defined key of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $key; /** @@ -129,7 +130,7 @@ final class ActionListResponseItem implements BaseModel * * @var value-of|null $type */ - #[Api(enum: Type::class, nullable: true, optional: true)] + #[Optional(enum: Type::class, nullable: true)] public ?string $type; /** diff --git a/src/Actions/ActionListResponseItem/PossibleValue.php b/src/Actions/ActionListResponseItem/PossibleValue.php index 98988ce..6bdbdf0 100644 --- a/src/Actions/ActionListResponseItem/PossibleValue.php +++ b/src/Actions/ActionListResponseItem/PossibleValue.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\ActionListResponseItem; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,7 +19,7 @@ final class PossibleValue implements BaseModel /** * The value of the action. */ - #[Api] + #[Required] public string $value; /** diff --git a/src/Actions/ActionListResponseItem/Webhook.php b/src/Actions/ActionListResponseItem/Webhook.php index e90b742..22431e1 100644 --- a/src/Actions/ActionListResponseItem/Webhook.php +++ b/src/Actions/ActionListResponseItem/Webhook.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Actions\ActionListResponseItem; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -25,31 +26,31 @@ final class Webhook implements BaseModel /** * The ID of the webhook. */ - #[Api] + #[Required] public string $id; /** * The webhook's name, used to identify it in the dashboard. */ - #[Api] + #[Required] public string $name; /** * The webhook's URL. We'll call this URL when the event occurs. */ - #[Api] + #[Required] public string $url; /** * The webhook's description. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** * The ID of the moderation action to trigger the webhook on. Only used for moderation action webhooks. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $moderationActionId; /** diff --git a/src/Actions/ActionNewResponse.php b/src/Actions/ActionNewResponse.php index 4f8cdd7..1331f48 100644 --- a/src/Actions/ActionNewResponse.php +++ b/src/Actions/ActionNewResponse.php @@ -8,7 +8,8 @@ use ModerationAPI\Actions\ActionNewResponse\PossibleValue; use ModerationAPI\Actions\ActionNewResponse\QueueBehaviour; use ModerationAPI\Actions\ActionNewResponse\Type; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -37,19 +38,19 @@ final class ActionNewResponse implements BaseModel /** * The ID of the action. */ - #[Api] + #[Required] public string $id; /** * Whether the action is a built-in action or a custom one. */ - #[Api] + #[Required] public ?bool $builtIn; /** * The date the action was created. */ - #[Api] + #[Required] public string $createdAt; /** @@ -57,19 +58,19 @@ final class ActionNewResponse implements BaseModel * * @var list $filterInQueueIds */ - #[Api(list: 'string')] + #[Required(list: 'string')] public array $filterInQueueIds; /** * Whether the action allows any text to be entered as a value or if it must be one of the possible values. */ - #[Api] + #[Required] public bool $freeText; /** * The name of the action. */ - #[Api] + #[Required] public string $name; /** @@ -77,7 +78,7 @@ final class ActionNewResponse implements BaseModel * * @var value-of $position */ - #[Api(enum: Position::class)] + #[Required(enum: Position::class)] public string $position; /** @@ -85,7 +86,7 @@ final class ActionNewResponse implements BaseModel * * @var list $possibleValues */ - #[Api(list: PossibleValue::class)] + #[Required(list: PossibleValue::class)] public array $possibleValues; /** @@ -93,25 +94,25 @@ final class ActionNewResponse implements BaseModel * * @var value-of $queueBehaviour */ - #[Api(enum: QueueBehaviour::class)] + #[Required(enum: QueueBehaviour::class)] public string $queueBehaviour; /** * Whether the action requires a value to be executed. */ - #[Api] + #[Required] public bool $valueRequired; /** * The description of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** * User defined key of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $key; /** @@ -119,7 +120,7 @@ final class ActionNewResponse implements BaseModel * * @var value-of|null $type */ - #[Api(enum: Type::class, nullable: true, optional: true)] + #[Optional(enum: Type::class, nullable: true)] public ?string $type; /** diff --git a/src/Actions/ActionNewResponse/PossibleValue.php b/src/Actions/ActionNewResponse/PossibleValue.php index 92ebb0a..2033bc6 100644 --- a/src/Actions/ActionNewResponse/PossibleValue.php +++ b/src/Actions/ActionNewResponse/PossibleValue.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\ActionNewResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,7 +19,7 @@ final class PossibleValue implements BaseModel /** * The value of the action. */ - #[Api] + #[Required] public string $value; /** diff --git a/src/Actions/ActionUpdateParams.php b/src/Actions/ActionUpdateParams.php index 0198946..c28f81d 100644 --- a/src/Actions/ActionUpdateParams.php +++ b/src/Actions/ActionUpdateParams.php @@ -9,7 +9,7 @@ use ModerationAPI\Actions\ActionUpdateParams\QueueBehaviour; use ModerationAPI\Actions\ActionUpdateParams\Type; use ModerationAPI\Actions\ActionUpdateParams\Webhook; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -45,13 +45,13 @@ final class ActionUpdateParams implements BaseModel /** * Whether the action is a built-in action or a custom one. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $builtIn; /** * The description of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** @@ -59,25 +59,25 @@ final class ActionUpdateParams implements BaseModel * * @var list|null $filterInQueueIds */ - #[Api(list: 'string', optional: true)] + #[Optional(list: 'string')] public ?array $filterInQueueIds; /** * Whether the action allows any text to be entered as a value or if it must be one of the possible values. */ - #[Api(optional: true)] + #[Optional] public ?bool $freeText; /** * User defined key of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $key; /** * The name of the action. */ - #[Api(optional: true)] + #[Optional] public ?string $name; /** @@ -85,7 +85,7 @@ final class ActionUpdateParams implements BaseModel * * @var value-of|null $position */ - #[Api(enum: Position::class, optional: true)] + #[Optional(enum: Position::class)] public ?string $position; /** @@ -93,7 +93,7 @@ final class ActionUpdateParams implements BaseModel * * @var list|null $possibleValues */ - #[Api(list: PossibleValue::class, optional: true)] + #[Optional(list: PossibleValue::class)] public ?array $possibleValues; /** @@ -101,7 +101,7 @@ final class ActionUpdateParams implements BaseModel * * @var value-of|null $queueBehaviour */ - #[Api(enum: QueueBehaviour::class, optional: true)] + #[Optional(enum: QueueBehaviour::class)] public ?string $queueBehaviour; /** @@ -109,13 +109,13 @@ final class ActionUpdateParams implements BaseModel * * @var value-of|null $type */ - #[Api(enum: Type::class, nullable: true, optional: true)] + #[Optional(enum: Type::class, nullable: true)] public ?string $type; /** * Whether the action requires a value to be executed. */ - #[Api(optional: true)] + #[Optional] public ?bool $valueRequired; /** @@ -123,7 +123,7 @@ final class ActionUpdateParams implements BaseModel * * @var list|null $webhooks */ - #[Api(list: Webhook::class, optional: true)] + #[Optional(list: Webhook::class)] public ?array $webhooks; public function __construct() diff --git a/src/Actions/ActionUpdateParams/PossibleValue.php b/src/Actions/ActionUpdateParams/PossibleValue.php index 1ac637b..cd2a49d 100644 --- a/src/Actions/ActionUpdateParams/PossibleValue.php +++ b/src/Actions/ActionUpdateParams/PossibleValue.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\ActionUpdateParams; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,7 +19,7 @@ final class PossibleValue implements BaseModel /** * The value of the action. */ - #[Api] + #[Required] public string $value; /** diff --git a/src/Actions/ActionUpdateParams/Webhook.php b/src/Actions/ActionUpdateParams/Webhook.php index 47504d3..d69ad60 100644 --- a/src/Actions/ActionUpdateParams/Webhook.php +++ b/src/Actions/ActionUpdateParams/Webhook.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Actions\ActionUpdateParams; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,25 +22,25 @@ final class Webhook implements BaseModel /** * The webhook's name, used to identify it in the dashboard. */ - #[Api] + #[Required] public string $name; /** * The webhook's URL. We'll call this URL when the event occurs. */ - #[Api] + #[Required] public string $url; /** * ID of an existing webhook or undefined if this is a new webhook. */ - #[Api(optional: true)] + #[Optional] public ?string $id; /** * The webhook's description. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** diff --git a/src/Actions/ActionUpdateResponse.php b/src/Actions/ActionUpdateResponse.php index ecde442..0e7be87 100644 --- a/src/Actions/ActionUpdateResponse.php +++ b/src/Actions/ActionUpdateResponse.php @@ -8,7 +8,8 @@ use ModerationAPI\Actions\ActionUpdateResponse\PossibleValue; use ModerationAPI\Actions\ActionUpdateResponse\QueueBehaviour; use ModerationAPI\Actions\ActionUpdateResponse\Type; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -37,19 +38,19 @@ final class ActionUpdateResponse implements BaseModel /** * The ID of the action. */ - #[Api] + #[Required] public string $id; /** * Whether the action is a built-in action or a custom one. */ - #[Api] + #[Required] public ?bool $builtIn; /** * The date the action was created. */ - #[Api] + #[Required] public string $createdAt; /** @@ -57,19 +58,19 @@ final class ActionUpdateResponse implements BaseModel * * @var list $filterInQueueIds */ - #[Api(list: 'string')] + #[Required(list: 'string')] public array $filterInQueueIds; /** * Whether the action allows any text to be entered as a value or if it must be one of the possible values. */ - #[Api] + #[Required] public bool $freeText; /** * The name of the action. */ - #[Api] + #[Required] public string $name; /** @@ -77,7 +78,7 @@ final class ActionUpdateResponse implements BaseModel * * @var value-of $position */ - #[Api(enum: Position::class)] + #[Required(enum: Position::class)] public string $position; /** @@ -85,7 +86,7 @@ final class ActionUpdateResponse implements BaseModel * * @var list $possibleValues */ - #[Api(list: PossibleValue::class)] + #[Required(list: PossibleValue::class)] public array $possibleValues; /** @@ -93,25 +94,25 @@ final class ActionUpdateResponse implements BaseModel * * @var value-of $queueBehaviour */ - #[Api(enum: QueueBehaviour::class)] + #[Required(enum: QueueBehaviour::class)] public string $queueBehaviour; /** * Whether the action requires a value to be executed. */ - #[Api] + #[Required] public bool $valueRequired; /** * The description of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $description; /** * User defined key of the action. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $key; /** @@ -119,7 +120,7 @@ final class ActionUpdateResponse implements BaseModel * * @var value-of|null $type */ - #[Api(enum: Type::class, nullable: true, optional: true)] + #[Optional(enum: Type::class, nullable: true)] public ?string $type; /** diff --git a/src/Actions/ActionUpdateResponse/PossibleValue.php b/src/Actions/ActionUpdateResponse/PossibleValue.php index e16dfab..117871f 100644 --- a/src/Actions/ActionUpdateResponse/PossibleValue.php +++ b/src/Actions/ActionUpdateResponse/PossibleValue.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\ActionUpdateResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,7 +19,7 @@ final class PossibleValue implements BaseModel /** * The value of the action. */ - #[Api] + #[Required] public string $value; /** diff --git a/src/Actions/Execute/ExecuteExecuteByIDParams.php b/src/Actions/Execute/ExecuteExecuteByIDParams.php index 7c09d3f..74a4f3a 100644 --- a/src/Actions/Execute/ExecuteExecuteByIDParams.php +++ b/src/Actions/Execute/ExecuteExecuteByIDParams.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\Execute; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -33,7 +33,7 @@ final class ExecuteExecuteByIDParams implements BaseModel * * @var list|null $authorIds */ - #[Api(list: 'string', optional: true)] + #[Optional(list: 'string')] public ?array $authorIds; /** @@ -41,19 +41,19 @@ final class ExecuteExecuteByIDParams implements BaseModel * * @var list|null $contentIds */ - #[Api(list: 'string', optional: true)] + #[Optional(list: 'string')] public ?array $contentIds; /** * The ID of the queue the action was performed from if any. */ - #[Api(optional: true)] + #[Optional] public ?string $queueId; /** * The value of the action. Useful to set a reason for the action etc. */ - #[Api(optional: true)] + #[Optional] public ?string $value; public function __construct() diff --git a/src/Actions/Execute/ExecuteExecuteByIDResponse.php b/src/Actions/Execute/ExecuteExecuteByIDResponse.php index 60e18a5..a8ce0a3 100644 --- a/src/Actions/Execute/ExecuteExecuteByIDResponse.php +++ b/src/Actions/Execute/ExecuteExecuteByIDResponse.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\Execute; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,7 +21,7 @@ final class ExecuteExecuteByIDResponse implements BaseModel /** * The ID of the action. */ - #[Api] + #[Required] public string $actionId; /** @@ -29,13 +29,13 @@ final class ExecuteExecuteByIDResponse implements BaseModel * * @var list $ids */ - #[Api(list: 'string')] + #[Required(list: 'string')] public array $ids; /** * Action executed successfully. */ - #[Api] + #[Required] public bool $success; /** diff --git a/src/Actions/Execute/ExecuteExecuteParams.php b/src/Actions/Execute/ExecuteExecuteParams.php index 406ffea..c9555a1 100644 --- a/src/Actions/Execute/ExecuteExecuteParams.php +++ b/src/Actions/Execute/ExecuteExecuteParams.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Actions\Execute; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -32,7 +33,7 @@ final class ExecuteExecuteParams implements BaseModel /** * ID or key of the action to execute. */ - #[Api] + #[Required] public string $actionKey; /** @@ -40,7 +41,7 @@ final class ExecuteExecuteParams implements BaseModel * * @var list|null $authorIds */ - #[Api(list: 'string', optional: true)] + #[Optional(list: 'string')] public ?array $authorIds; /** @@ -48,25 +49,25 @@ final class ExecuteExecuteParams implements BaseModel * * @var list|null $contentIds */ - #[Api(list: 'string', optional: true)] + #[Optional(list: 'string')] public ?array $contentIds; /** * Optional duration in milliseconds for actions with timeouts. */ - #[Api(optional: true)] + #[Optional] public ?float $duration; /** * Optional queue ID if the action is queue-specific. */ - #[Api(optional: true)] + #[Optional] public ?string $queueId; /** * Optional value to provide with the action. */ - #[Api(optional: true)] + #[Optional] public ?string $value; /** diff --git a/src/Actions/Execute/ExecuteExecuteResponse.php b/src/Actions/Execute/ExecuteExecuteResponse.php index 6f4afad..b8d4732 100644 --- a/src/Actions/Execute/ExecuteExecuteResponse.php +++ b/src/Actions/Execute/ExecuteExecuteResponse.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Actions\Execute; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,7 +21,7 @@ final class ExecuteExecuteResponse implements BaseModel /** * Whether the action was executed successfully. */ - #[Api] + #[Required] public bool $success; /** diff --git a/src/Auth/AuthGetResponse.php b/src/Auth/AuthGetResponse.php index 412c12a..b817783 100644 --- a/src/Auth/AuthGetResponse.php +++ b/src/Auth/AuthGetResponse.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Auth; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class AuthGetResponse implements BaseModel /** * Message of the authentication. */ - #[Api] + #[Required] public string $message; /** * Status of the authentication. */ - #[Api] + #[Required] public string $status; /** diff --git a/src/Auth/AuthNewResponse.php b/src/Auth/AuthNewResponse.php index 5b289e2..3fab6ea 100644 --- a/src/Auth/AuthNewResponse.php +++ b/src/Auth/AuthNewResponse.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Auth; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,19 +21,19 @@ final class AuthNewResponse implements BaseModel /** * Message of the authentication. */ - #[Api] + #[Required] public string $message; /** * Name of the authenticated project. */ - #[Api] + #[Required] public string $project; /** * Status of the authentication. */ - #[Api] + #[Required] public string $status; /** diff --git a/src/Authors/AuthorCreateParams.php b/src/Authors/AuthorCreateParams.php index 9f62ed9..1e1dd86 100644 --- a/src/Authors/AuthorCreateParams.php +++ b/src/Authors/AuthorCreateParams.php @@ -5,7 +5,8 @@ namespace ModerationAPI\Authors; use ModerationAPI\Authors\AuthorCreateParams\Metadata; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -41,52 +42,52 @@ final class AuthorCreateParams implements BaseModel /** * External ID of the user, typically the ID of the author in your database. */ - #[Api] + #[Required] public string $external_id; /** * Author email address. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $email; /** * URL of the author's external profile. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_link; /** * Timestamp when author first appeared. */ - #[Api(optional: true)] + #[Optional] public ?float $first_seen; /** * Timestamp of last activity. */ - #[Api(optional: true)] + #[Optional] public ?float $last_seen; - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $manual_trust_level; /** * Additional metadata provided by your system. We recommend including any relevant information that may assist in the moderation process. */ - #[Api(optional: true)] + #[Optional] public ?Metadata $metadata; /** * Author name or identifier. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $name; /** * URL of the author's profile picture. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $profile_picture; /** diff --git a/src/Authors/AuthorCreateParams/Metadata.php b/src/Authors/AuthorCreateParams/Metadata.php index b7c1fe8..1be6594 100644 --- a/src/Authors/AuthorCreateParams/Metadata.php +++ b/src/Authors/AuthorCreateParams/Metadata.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorCreateParams; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,25 +26,25 @@ final class Metadata implements BaseModel /** * Whether the author's email is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $email_verified; /** * Whether the author's identity is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $identity_verified; /** * Whether the author is a paying customer. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $is_paying_customer; /** * Whether the author's phone number is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $phone_verified; public function __construct() diff --git a/src/Authors/AuthorDeleteResponse.php b/src/Authors/AuthorDeleteResponse.php index 16a904c..d3c20bc 100644 --- a/src/Authors/AuthorDeleteResponse.php +++ b/src/Authors/AuthorDeleteResponse.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -16,7 +16,7 @@ final class AuthorDeleteResponse implements BaseModel /** @use SdkModel */ use SdkModel; - #[Api] + #[Required] public bool $success; /** diff --git a/src/Authors/AuthorGetResponse.php b/src/Authors/AuthorGetResponse.php index 4353fed..a1c475a 100644 --- a/src/Authors/AuthorGetResponse.php +++ b/src/Authors/AuthorGetResponse.php @@ -10,7 +10,8 @@ use ModerationAPI\Authors\AuthorGetResponse\RiskEvaluation; use ModerationAPI\Authors\AuthorGetResponse\Status; use ModerationAPI\Authors\AuthorGetResponse\TrustLevel; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -41,40 +42,40 @@ final class AuthorGetResponse implements BaseModel /** * Author ID in Moderation API. */ - #[Api] + #[Required] public string $id; /** * Block or suspension details, if applicable. Null if the author is enabled. */ - #[Api] + #[Required] public ?Block $block; /** * Timestamp when author first appeared. */ - #[Api] + #[Required] public float $first_seen; /** * Timestamp of last activity. */ - #[Api] + #[Required] public float $last_seen; /** * Additional metadata provided by your system. We recommend including any relevant information that may assist in the moderation process. */ - #[Api] + #[Required] public Metadata $metadata; - #[Api] + #[Required] public Metrics $metrics; /** * Risk assessment details, if available. */ - #[Api] + #[Required] public ?RiskEvaluation $risk_evaluation; /** @@ -82,46 +83,46 @@ final class AuthorGetResponse implements BaseModel * * @var value-of $status */ - #[Api(enum: Status::class)] + #[Required(enum: Status::class)] public string $status; - #[Api] + #[Required] public TrustLevel $trust_level; /** * Author email address. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $email; /** * The author's ID from your system. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_id; /** * URL of the author's external profile. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_link; /** * Timestamp of last incident. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $last_incident; /** * Author name or identifier. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $name; /** * URL of the author's profile picture. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $profile_picture; /** diff --git a/src/Authors/AuthorGetResponse/Block.php b/src/Authors/AuthorGetResponse/Block.php index c1bb986..709e9d1 100644 --- a/src/Authors/AuthorGetResponse/Block.php +++ b/src/Authors/AuthorGetResponse/Block.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorGetResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,13 +21,13 @@ final class Block implements BaseModel /** * The moderators reason why the author was blocked or suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $reason; /** * The timestamp until which they are blocked if the author is suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $until; public function __construct() diff --git a/src/Authors/AuthorGetResponse/Metadata.php b/src/Authors/AuthorGetResponse/Metadata.php index b9edf25..21bf5f9 100644 --- a/src/Authors/AuthorGetResponse/Metadata.php +++ b/src/Authors/AuthorGetResponse/Metadata.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorGetResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,25 +26,25 @@ final class Metadata implements BaseModel /** * Whether the author's email is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $email_verified; /** * Whether the author's identity is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $identity_verified; /** * Whether the author is a paying customer. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $is_paying_customer; /** * Whether the author's phone number is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $phone_verified; public function __construct() diff --git a/src/Authors/AuthorGetResponse/Metrics.php b/src/Authors/AuthorGetResponse/Metrics.php index ec443d1..2a4f702 100644 --- a/src/Authors/AuthorGetResponse/Metrics.php +++ b/src/Authors/AuthorGetResponse/Metrics.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Authors\AuthorGetResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,19 +22,19 @@ final class Metrics implements BaseModel /** * Number of flagged content pieces. */ - #[Api] + #[Required] public float $flagged_content; /** * Total pieces of content. */ - #[Api] + #[Required] public float $total_content; /** * Average sentiment score of content (-1 to 1). Requires a sentiment model in your project. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $average_sentiment; /** diff --git a/src/Authors/AuthorGetResponse/RiskEvaluation.php b/src/Authors/AuthorGetResponse/RiskEvaluation.php index 8bb2b90..489e199 100644 --- a/src/Authors/AuthorGetResponse/RiskEvaluation.php +++ b/src/Authors/AuthorGetResponse/RiskEvaluation.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorGetResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,7 +21,7 @@ final class RiskEvaluation implements BaseModel /** * Calculated risk level based on more than 10 behavioral signals. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $risk_level; public function __construct() diff --git a/src/Authors/AuthorGetResponse/TrustLevel.php b/src/Authors/AuthorGetResponse/TrustLevel.php index d4768d8..8ec0ae0 100644 --- a/src/Authors/AuthorGetResponse/TrustLevel.php +++ b/src/Authors/AuthorGetResponse/TrustLevel.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorGetResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class TrustLevel implements BaseModel /** * Author trust level (-1, 0, 1, 2, 3, or 4). */ - #[Api] + #[Required] public float $level; /** * True if the trust level was set manually by a moderator. */ - #[Api] + #[Required] public bool $manual; /** diff --git a/src/Authors/AuthorListParams.php b/src/Authors/AuthorListParams.php index 1d88c10..d9f0f8a 100644 --- a/src/Authors/AuthorListParams.php +++ b/src/Authors/AuthorListParams.php @@ -6,7 +6,7 @@ use ModerationAPI\Authors\AuthorListParams\SortBy; use ModerationAPI\Authors\AuthorListParams\SortDirection; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -32,29 +32,29 @@ final class AuthorListParams implements BaseModel use SdkModel; use SdkParams; - #[Api(optional: true)] + #[Optional] public ?string $contentTypes; - #[Api(optional: true)] + #[Optional] public ?string $lastActiveDate; - #[Api(optional: true)] + #[Optional] public ?string $memberSinceDate; /** * Page number to fetch. */ - #[Api(optional: true)] + #[Optional] public ?float $pageNumber; /** * Number of authors per page. */ - #[Api(optional: true)] + #[Optional] public ?float $pageSize; /** @var value-of|null $sortBy */ - #[Api(enum: SortBy::class, optional: true)] + #[Optional(enum: SortBy::class)] public ?string $sortBy; /** @@ -62,7 +62,7 @@ final class AuthorListParams implements BaseModel * * @var value-of|null $sortDirection */ - #[Api(enum: SortDirection::class, optional: true)] + #[Optional(enum: SortDirection::class)] public ?string $sortDirection; public function __construct() diff --git a/src/Authors/AuthorListResponse.php b/src/Authors/AuthorListResponse.php index 41861e3..5d2bb8f 100644 --- a/src/Authors/AuthorListResponse.php +++ b/src/Authors/AuthorListResponse.php @@ -12,7 +12,7 @@ use ModerationAPI\Authors\AuthorListResponse\Author\Status; use ModerationAPI\Authors\AuthorListResponse\Author\TrustLevel; use ModerationAPI\Authors\AuthorListResponse\Pagination; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -27,10 +27,10 @@ final class AuthorListResponse implements BaseModel use SdkModel; /** @var list $authors */ - #[Api(list: Author::class)] + #[Required(list: Author::class)] public array $authors; - #[Api] + #[Required] public Pagination $pagination; /** diff --git a/src/Authors/AuthorListResponse/Author.php b/src/Authors/AuthorListResponse/Author.php index 9589485..b090f07 100644 --- a/src/Authors/AuthorListResponse/Author.php +++ b/src/Authors/AuthorListResponse/Author.php @@ -10,7 +10,8 @@ use ModerationAPI\Authors\AuthorListResponse\Author\RiskEvaluation; use ModerationAPI\Authors\AuthorListResponse\Author\Status; use ModerationAPI\Authors\AuthorListResponse\Author\TrustLevel; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -41,40 +42,40 @@ final class Author implements BaseModel /** * Author ID in Moderation API. */ - #[Api] + #[Required] public string $id; /** * Block or suspension details, if applicable. Null if the author is enabled. */ - #[Api] + #[Required] public ?Block $block; /** * Timestamp when author first appeared. */ - #[Api] + #[Required] public float $first_seen; /** * Timestamp of last activity. */ - #[Api] + #[Required] public float $last_seen; /** * Additional metadata provided by your system. We recommend including any relevant information that may assist in the moderation process. */ - #[Api] + #[Required] public Metadata $metadata; - #[Api] + #[Required] public Metrics $metrics; /** * Risk assessment details, if available. */ - #[Api] + #[Required] public ?RiskEvaluation $risk_evaluation; /** @@ -82,46 +83,46 @@ final class Author implements BaseModel * * @var value-of $status */ - #[Api(enum: Status::class)] + #[Required(enum: Status::class)] public string $status; - #[Api] + #[Required] public TrustLevel $trust_level; /** * Author email address. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $email; /** * The author's ID from your system. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_id; /** * URL of the author's external profile. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_link; /** * Timestamp of last incident. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $last_incident; /** * Author name or identifier. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $name; /** * URL of the author's profile picture. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $profile_picture; /** diff --git a/src/Authors/AuthorListResponse/Author/Block.php b/src/Authors/AuthorListResponse/Author/Block.php index c746429..6dfc0fa 100644 --- a/src/Authors/AuthorListResponse/Author/Block.php +++ b/src/Authors/AuthorListResponse/Author/Block.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorListResponse\Author; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,13 +21,13 @@ final class Block implements BaseModel /** * The moderators reason why the author was blocked or suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $reason; /** * The timestamp until which they are blocked if the author is suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $until; public function __construct() diff --git a/src/Authors/AuthorListResponse/Author/Metadata.php b/src/Authors/AuthorListResponse/Author/Metadata.php index 1d88096..90881a0 100644 --- a/src/Authors/AuthorListResponse/Author/Metadata.php +++ b/src/Authors/AuthorListResponse/Author/Metadata.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorListResponse\Author; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,25 +26,25 @@ final class Metadata implements BaseModel /** * Whether the author's email is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $email_verified; /** * Whether the author's identity is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $identity_verified; /** * Whether the author is a paying customer. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $is_paying_customer; /** * Whether the author's phone number is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $phone_verified; public function __construct() diff --git a/src/Authors/AuthorListResponse/Author/Metrics.php b/src/Authors/AuthorListResponse/Author/Metrics.php index 64aa202..e8a0d6f 100644 --- a/src/Authors/AuthorListResponse/Author/Metrics.php +++ b/src/Authors/AuthorListResponse/Author/Metrics.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Authors\AuthorListResponse\Author; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,19 +22,19 @@ final class Metrics implements BaseModel /** * Number of flagged content pieces. */ - #[Api] + #[Required] public float $flagged_content; /** * Total pieces of content. */ - #[Api] + #[Required] public float $total_content; /** * Average sentiment score of content (-1 to 1). Requires a sentiment model in your project. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $average_sentiment; /** diff --git a/src/Authors/AuthorListResponse/Author/RiskEvaluation.php b/src/Authors/AuthorListResponse/Author/RiskEvaluation.php index 584cad0..39ec823 100644 --- a/src/Authors/AuthorListResponse/Author/RiskEvaluation.php +++ b/src/Authors/AuthorListResponse/Author/RiskEvaluation.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorListResponse\Author; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,7 +21,7 @@ final class RiskEvaluation implements BaseModel /** * Calculated risk level based on more than 10 behavioral signals. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $risk_level; public function __construct() diff --git a/src/Authors/AuthorListResponse/Author/TrustLevel.php b/src/Authors/AuthorListResponse/Author/TrustLevel.php index 3008faf..991fb5a 100644 --- a/src/Authors/AuthorListResponse/Author/TrustLevel.php +++ b/src/Authors/AuthorListResponse/Author/TrustLevel.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorListResponse\Author; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class TrustLevel implements BaseModel /** * Author trust level (-1, 0, 1, 2, 3, or 4). */ - #[Api] + #[Required] public float $level; /** * True if the trust level was set manually by a moderator. */ - #[Api] + #[Required] public bool $manual; /** diff --git a/src/Authors/AuthorListResponse/Pagination.php b/src/Authors/AuthorListResponse/Pagination.php index cbf132d..69ec883 100644 --- a/src/Authors/AuthorListResponse/Pagination.php +++ b/src/Authors/AuthorListResponse/Pagination.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorListResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -22,19 +22,19 @@ final class Pagination implements BaseModel /** @use SdkModel */ use SdkModel; - #[Api] + #[Required] public bool $hasNextPage; - #[Api] + #[Required] public bool $hasPreviousPage; - #[Api] + #[Required] public float $pageNumber; - #[Api] + #[Required] public float $pageSize; - #[Api] + #[Required] public float $total; /** diff --git a/src/Authors/AuthorNewResponse.php b/src/Authors/AuthorNewResponse.php index 141ccd2..cb832db 100644 --- a/src/Authors/AuthorNewResponse.php +++ b/src/Authors/AuthorNewResponse.php @@ -10,7 +10,8 @@ use ModerationAPI\Authors\AuthorNewResponse\RiskEvaluation; use ModerationAPI\Authors\AuthorNewResponse\Status; use ModerationAPI\Authors\AuthorNewResponse\TrustLevel; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -41,40 +42,40 @@ final class AuthorNewResponse implements BaseModel /** * Author ID in Moderation API. */ - #[Api] + #[Required] public string $id; /** * Block or suspension details, if applicable. Null if the author is enabled. */ - #[Api] + #[Required] public ?Block $block; /** * Timestamp when author first appeared. */ - #[Api] + #[Required] public float $first_seen; /** * Timestamp of last activity. */ - #[Api] + #[Required] public float $last_seen; /** * Additional metadata provided by your system. We recommend including any relevant information that may assist in the moderation process. */ - #[Api] + #[Required] public Metadata $metadata; - #[Api] + #[Required] public Metrics $metrics; /** * Risk assessment details, if available. */ - #[Api] + #[Required] public ?RiskEvaluation $risk_evaluation; /** @@ -82,46 +83,46 @@ final class AuthorNewResponse implements BaseModel * * @var value-of $status */ - #[Api(enum: Status::class)] + #[Required(enum: Status::class)] public string $status; - #[Api] + #[Required] public TrustLevel $trust_level; /** * Author email address. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $email; /** * The author's ID from your system. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_id; /** * URL of the author's external profile. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_link; /** * Timestamp of last incident. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $last_incident; /** * Author name or identifier. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $name; /** * URL of the author's profile picture. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $profile_picture; /** diff --git a/src/Authors/AuthorNewResponse/Block.php b/src/Authors/AuthorNewResponse/Block.php index bbf2650..69537ad 100644 --- a/src/Authors/AuthorNewResponse/Block.php +++ b/src/Authors/AuthorNewResponse/Block.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorNewResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,13 +21,13 @@ final class Block implements BaseModel /** * The moderators reason why the author was blocked or suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $reason; /** * The timestamp until which they are blocked if the author is suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $until; public function __construct() diff --git a/src/Authors/AuthorNewResponse/Metadata.php b/src/Authors/AuthorNewResponse/Metadata.php index a134946..b34045a 100644 --- a/src/Authors/AuthorNewResponse/Metadata.php +++ b/src/Authors/AuthorNewResponse/Metadata.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorNewResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,25 +26,25 @@ final class Metadata implements BaseModel /** * Whether the author's email is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $email_verified; /** * Whether the author's identity is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $identity_verified; /** * Whether the author is a paying customer. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $is_paying_customer; /** * Whether the author's phone number is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $phone_verified; public function __construct() diff --git a/src/Authors/AuthorNewResponse/Metrics.php b/src/Authors/AuthorNewResponse/Metrics.php index a7e927a..3958478 100644 --- a/src/Authors/AuthorNewResponse/Metrics.php +++ b/src/Authors/AuthorNewResponse/Metrics.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Authors\AuthorNewResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,19 +22,19 @@ final class Metrics implements BaseModel /** * Number of flagged content pieces. */ - #[Api] + #[Required] public float $flagged_content; /** * Total pieces of content. */ - #[Api] + #[Required] public float $total_content; /** * Average sentiment score of content (-1 to 1). Requires a sentiment model in your project. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $average_sentiment; /** diff --git a/src/Authors/AuthorNewResponse/RiskEvaluation.php b/src/Authors/AuthorNewResponse/RiskEvaluation.php index 553ad7f..f2c2d41 100644 --- a/src/Authors/AuthorNewResponse/RiskEvaluation.php +++ b/src/Authors/AuthorNewResponse/RiskEvaluation.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorNewResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,7 +21,7 @@ final class RiskEvaluation implements BaseModel /** * Calculated risk level based on more than 10 behavioral signals. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $risk_level; public function __construct() diff --git a/src/Authors/AuthorNewResponse/TrustLevel.php b/src/Authors/AuthorNewResponse/TrustLevel.php index a9f65ee..95a3aba 100644 --- a/src/Authors/AuthorNewResponse/TrustLevel.php +++ b/src/Authors/AuthorNewResponse/TrustLevel.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorNewResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class TrustLevel implements BaseModel /** * Author trust level (-1, 0, 1, 2, 3, or 4). */ - #[Api] + #[Required] public float $level; /** * True if the trust level was set manually by a moderator. */ - #[Api] + #[Required] public bool $manual; /** diff --git a/src/Authors/AuthorUpdateParams.php b/src/Authors/AuthorUpdateParams.php index d2571cf..a2c843a 100644 --- a/src/Authors/AuthorUpdateParams.php +++ b/src/Authors/AuthorUpdateParams.php @@ -5,7 +5,7 @@ namespace ModerationAPI\Authors; use ModerationAPI\Authors\AuthorUpdateParams\Metadata; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -40,46 +40,46 @@ final class AuthorUpdateParams implements BaseModel /** * Author email address. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $email; /** * URL of the author's external profile. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_link; /** * Timestamp when author first appeared. */ - #[Api(optional: true)] + #[Optional] public ?float $first_seen; /** * Timestamp of last activity. */ - #[Api(optional: true)] + #[Optional] public ?float $last_seen; - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $manual_trust_level; /** * Additional metadata provided by your system. We recommend including any relevant information that may assist in the moderation process. */ - #[Api(optional: true)] + #[Optional] public ?Metadata $metadata; /** * Author name or identifier. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $name; /** * URL of the author's profile picture. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $profile_picture; public function __construct() diff --git a/src/Authors/AuthorUpdateParams/Metadata.php b/src/Authors/AuthorUpdateParams/Metadata.php index 07c20c7..d1b5713 100644 --- a/src/Authors/AuthorUpdateParams/Metadata.php +++ b/src/Authors/AuthorUpdateParams/Metadata.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorUpdateParams; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,25 +26,25 @@ final class Metadata implements BaseModel /** * Whether the author's email is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $email_verified; /** * Whether the author's identity is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $identity_verified; /** * Whether the author is a paying customer. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $is_paying_customer; /** * Whether the author's phone number is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $phone_verified; public function __construct() diff --git a/src/Authors/AuthorUpdateResponse.php b/src/Authors/AuthorUpdateResponse.php index 68490eb..7e4301a 100644 --- a/src/Authors/AuthorUpdateResponse.php +++ b/src/Authors/AuthorUpdateResponse.php @@ -10,7 +10,8 @@ use ModerationAPI\Authors\AuthorUpdateResponse\RiskEvaluation; use ModerationAPI\Authors\AuthorUpdateResponse\Status; use ModerationAPI\Authors\AuthorUpdateResponse\TrustLevel; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -41,40 +42,40 @@ final class AuthorUpdateResponse implements BaseModel /** * Author ID in Moderation API. */ - #[Api] + #[Required] public string $id; /** * Block or suspension details, if applicable. Null if the author is enabled. */ - #[Api] + #[Required] public ?Block $block; /** * Timestamp when author first appeared. */ - #[Api] + #[Required] public float $first_seen; /** * Timestamp of last activity. */ - #[Api] + #[Required] public float $last_seen; /** * Additional metadata provided by your system. We recommend including any relevant information that may assist in the moderation process. */ - #[Api] + #[Required] public Metadata $metadata; - #[Api] + #[Required] public Metrics $metrics; /** * Risk assessment details, if available. */ - #[Api] + #[Required] public ?RiskEvaluation $risk_evaluation; /** @@ -82,46 +83,46 @@ final class AuthorUpdateResponse implements BaseModel * * @var value-of $status */ - #[Api(enum: Status::class)] + #[Required(enum: Status::class)] public string $status; - #[Api] + #[Required] public TrustLevel $trust_level; /** * Author email address. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $email; /** * The author's ID from your system. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_id; /** * URL of the author's external profile. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_link; /** * Timestamp of last incident. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $last_incident; /** * Author name or identifier. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $name; /** * URL of the author's profile picture. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $profile_picture; /** diff --git a/src/Authors/AuthorUpdateResponse/Block.php b/src/Authors/AuthorUpdateResponse/Block.php index 0793dd0..8f1fc01 100644 --- a/src/Authors/AuthorUpdateResponse/Block.php +++ b/src/Authors/AuthorUpdateResponse/Block.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorUpdateResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,13 +21,13 @@ final class Block implements BaseModel /** * The moderators reason why the author was blocked or suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $reason; /** * The timestamp until which they are blocked if the author is suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $until; public function __construct() diff --git a/src/Authors/AuthorUpdateResponse/Metadata.php b/src/Authors/AuthorUpdateResponse/Metadata.php index bab1ab8..e61b031 100644 --- a/src/Authors/AuthorUpdateResponse/Metadata.php +++ b/src/Authors/AuthorUpdateResponse/Metadata.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorUpdateResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,25 +26,25 @@ final class Metadata implements BaseModel /** * Whether the author's email is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $email_verified; /** * Whether the author's identity is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $identity_verified; /** * Whether the author is a paying customer. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $is_paying_customer; /** * Whether the author's phone number is verified. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?bool $phone_verified; public function __construct() diff --git a/src/Authors/AuthorUpdateResponse/Metrics.php b/src/Authors/AuthorUpdateResponse/Metrics.php index 28c650c..6dcff7f 100644 --- a/src/Authors/AuthorUpdateResponse/Metrics.php +++ b/src/Authors/AuthorUpdateResponse/Metrics.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Authors\AuthorUpdateResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,19 +22,19 @@ final class Metrics implements BaseModel /** * Number of flagged content pieces. */ - #[Api] + #[Required] public float $flagged_content; /** * Total pieces of content. */ - #[Api] + #[Required] public float $total_content; /** * Average sentiment score of content (-1 to 1). Requires a sentiment model in your project. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $average_sentiment; /** diff --git a/src/Authors/AuthorUpdateResponse/RiskEvaluation.php b/src/Authors/AuthorUpdateResponse/RiskEvaluation.php index d9907fc..349982a 100644 --- a/src/Authors/AuthorUpdateResponse/RiskEvaluation.php +++ b/src/Authors/AuthorUpdateResponse/RiskEvaluation.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorUpdateResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,7 +21,7 @@ final class RiskEvaluation implements BaseModel /** * Calculated risk level based on more than 10 behavioral signals. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $risk_level; public function __construct() diff --git a/src/Authors/AuthorUpdateResponse/TrustLevel.php b/src/Authors/AuthorUpdateResponse/TrustLevel.php index e7f473b..ccc4193 100644 --- a/src/Authors/AuthorUpdateResponse/TrustLevel.php +++ b/src/Authors/AuthorUpdateResponse/TrustLevel.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Authors\AuthorUpdateResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class TrustLevel implements BaseModel /** * Author trust level (-1, 0, 1, 2, 3, or 4). */ - #[Api] + #[Required] public float $level; /** * True if the trust level was set manually by a moderator. */ - #[Api] + #[Required] public bool $manual; /** diff --git a/src/Content/ContentSubmitParams.php b/src/Content/ContentSubmitParams.php index f816dc9..b35b1b4 100644 --- a/src/Content/ContentSubmitParams.php +++ b/src/Content/ContentSubmitParams.php @@ -35,7 +35,8 @@ use ModerationAPI\Content\ContentSubmitParams\Policy\ToxicitySevere; use ModerationAPI\Content\ContentSubmitParams\Policy\URLMasking; use ModerationAPI\Content\ContentSubmitParams\Policy\Violence; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Concerns\SdkParams; use ModerationAPI\Core\Contracts\BaseModel; @@ -102,37 +103,37 @@ final class ContentSubmitParams implements BaseModel /** * The content sent for moderation. */ - #[Api] + #[Required] public Text|Image|Video|Audio|Object1 $content; /** * The author of the content. */ - #[Api(optional: true)] + #[Optional] public ?string $authorId; /** * Provide a channel ID or key. Will use the project's default channel if not provided. */ - #[Api(optional: true)] + #[Optional] public ?string $channel; /** * The unique ID of the content in your database. */ - #[Api(optional: true)] + #[Optional] public ?string $contentId; /** * For example the ID of a chat room or a post. */ - #[Api(optional: true)] + #[Optional] public ?string $conversationId; /** * Do not store the content. The content won't enter the review queue. */ - #[Api(optional: true)] + #[Optional] public ?bool $doNotStore; /** @@ -140,7 +141,7 @@ final class ContentSubmitParams implements BaseModel * * @var array|null $metadata */ - #[Api(map: 'mixed', optional: true)] + #[Optional(map: 'mixed')] public ?array $metadata; /** @@ -148,7 +149,7 @@ final class ContentSubmitParams implements BaseModel * * @var value-of|null $metaType */ - #[Api(enum: MetaType::class, optional: true)] + #[Optional(enum: MetaType::class)] public ?string $metaType; /** @@ -156,7 +157,7 @@ final class ContentSubmitParams implements BaseModel * * @var list|null $policies */ - #[Api(list: Policy::class, optional: true)] + #[Optional(list: Policy::class)] public ?array $policies; /** diff --git a/src/Content/ContentSubmitParams/Content/Audio.php b/src/Content/ContentSubmitParams/Content/Audio.php index be8e61a..b7e5a30 100644 --- a/src/Content/ContentSubmitParams/Content/Audio.php +++ b/src/Content/ContentSubmitParams/Content/Audio.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Audio implements BaseModel use SdkModel; /** @var 'audio' $type */ - #[Api] + #[Required] public string $type = 'audio'; /** * The URL of the audio content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitParams/Content/Image.php b/src/Content/ContentSubmitParams/Content/Image.php index e44cb4e..5092d18 100644 --- a/src/Content/ContentSubmitParams/Content/Image.php +++ b/src/Content/ContentSubmitParams/Content/Image.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Image implements BaseModel use SdkModel; /** @var 'image' $type */ - #[Api] + #[Required] public string $type = 'image'; /** * A public URL of the image content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitParams/Content/Object1.php b/src/Content/ContentSubmitParams/Content/Object1.php index b78f19d..3eb1783 100644 --- a/src/Content/ContentSubmitParams/Content/Object1.php +++ b/src/Content/ContentSubmitParams/Content/Object1.php @@ -9,7 +9,7 @@ use ModerationAPI\Content\ContentSubmitParams\Content\Object1\Data\Image; use ModerationAPI\Content\ContentSubmitParams\Content\Object1\Data\Text; use ModerationAPI\Content\ContentSubmitParams\Content\Object1\Data\Video; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -27,7 +27,7 @@ final class Object1 implements BaseModel use SdkModel; /** @var 'object' $type */ - #[Api] + #[Required] public string $type = 'object'; /** @@ -35,7 +35,7 @@ final class Object1 implements BaseModel * * @var array $data */ - #[Api(map: Data::class)] + #[Required(map: Data::class)] public array $data; /** diff --git a/src/Content/ContentSubmitParams/Content/Object1/Data/Audio.php b/src/Content/ContentSubmitParams/Content/Object1/Data/Audio.php index e62a625..fdc0b75 100644 --- a/src/Content/ContentSubmitParams/Content/Object1/Data/Audio.php +++ b/src/Content/ContentSubmitParams/Content/Object1/Data/Audio.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content\Object1\Data; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Audio implements BaseModel use SdkModel; /** @var 'audio' $type */ - #[Api] + #[Required] public string $type = 'audio'; /** * The URL of the audio content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitParams/Content/Object1/Data/Image.php b/src/Content/ContentSubmitParams/Content/Object1/Data/Image.php index dfe5718..b6189d0 100644 --- a/src/Content/ContentSubmitParams/Content/Object1/Data/Image.php +++ b/src/Content/ContentSubmitParams/Content/Object1/Data/Image.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content\Object1\Data; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Image implements BaseModel use SdkModel; /** @var 'image' $type */ - #[Api] + #[Required] public string $type = 'image'; /** * A public URL of the image content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitParams/Content/Object1/Data/Text.php b/src/Content/ContentSubmitParams/Content/Object1/Data/Text.php index f145390..3776be5 100644 --- a/src/Content/ContentSubmitParams/Content/Object1/Data/Text.php +++ b/src/Content/ContentSubmitParams/Content/Object1/Data/Text.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content\Object1\Data; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Text implements BaseModel use SdkModel; /** @var 'text' $type */ - #[Api] + #[Required] public string $type = 'text'; /** * The content text. */ - #[Api] + #[Required] public string $text; /** diff --git a/src/Content/ContentSubmitParams/Content/Object1/Data/Video.php b/src/Content/ContentSubmitParams/Content/Object1/Data/Video.php index b9fa6e3..3121121 100644 --- a/src/Content/ContentSubmitParams/Content/Object1/Data/Video.php +++ b/src/Content/ContentSubmitParams/Content/Object1/Data/Video.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content\Object1\Data; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Video implements BaseModel use SdkModel; /** @var 'video' $type */ - #[Api] + #[Required] public string $type = 'video'; /** * A public URL of the video content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitParams/Content/Text.php b/src/Content/ContentSubmitParams/Content/Text.php index 0c404ca..a2bec43 100644 --- a/src/Content/ContentSubmitParams/Content/Text.php +++ b/src/Content/ContentSubmitParams/Content/Text.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Text implements BaseModel use SdkModel; /** @var 'text' $type */ - #[Api] + #[Required] public string $type = 'text'; /** * The content text. */ - #[Api] + #[Required] public string $text; /** diff --git a/src/Content/ContentSubmitParams/Content/Video.php b/src/Content/ContentSubmitParams/Content/Video.php index 08b86ea..2cee56e 100644 --- a/src/Content/ContentSubmitParams/Content/Video.php +++ b/src/Content/ContentSubmitParams/Content/Video.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Content; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Video implements BaseModel use SdkModel; /** @var 'video' $type */ - #[Api] + #[Required] public string $type = 'video'; /** * A public URL of the video content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitParams/Policy/CodeAbuse.php b/src/Content/ContentSubmitParams/Policy/CodeAbuse.php index 47a2f7d..daf3cf1 100644 --- a/src/Content/ContentSubmitParams/Policy/CodeAbuse.php +++ b/src/Content/ContentSubmitParams/Policy/CodeAbuse.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class CodeAbuse implements BaseModel use SdkModel; /** @var 'code_abuse' $id */ - #[Api] + #[Required] public string $id = 'code_abuse'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Flirtation.php b/src/Content/ContentSubmitParams/Policy/Flirtation.php index 190dda8..fa457d3 100644 --- a/src/Content/ContentSubmitParams/Policy/Flirtation.php +++ b/src/Content/ContentSubmitParams/Policy/Flirtation.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Flirtation implements BaseModel use SdkModel; /** @var 'flirtation' $id */ - #[Api] + #[Required] public string $id = 'flirtation'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Guideline.php b/src/Content/ContentSubmitParams/Policy/Guideline.php index e209e79..a614639 100644 --- a/src/Content/ContentSubmitParams/Policy/Guideline.php +++ b/src/Content/ContentSubmitParams/Policy/Guideline.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,16 +19,16 @@ final class Guideline implements BaseModel use SdkModel; /** @var 'guideline' $id */ - #[Api] + #[Required] public string $id = 'guideline'; - #[Api] + #[Required] public bool $flag; - #[Api] + #[Required] public string $guidelineKey; - #[Api] + #[Required] public string $instructions; /** diff --git a/src/Content/ContentSubmitParams/Policy/Hate.php b/src/Content/ContentSubmitParams/Policy/Hate.php index d78951b..4077831 100644 --- a/src/Content/ContentSubmitParams/Policy/Hate.php +++ b/src/Content/ContentSubmitParams/Policy/Hate.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Hate implements BaseModel use SdkModel; /** @var 'hate' $id */ - #[Api] + #[Required] public string $id = 'hate'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Illicit.php b/src/Content/ContentSubmitParams/Policy/Illicit.php index 86f5b0e..288527c 100644 --- a/src/Content/ContentSubmitParams/Policy/Illicit.php +++ b/src/Content/ContentSubmitParams/Policy/Illicit.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Illicit implements BaseModel use SdkModel; /** @var 'illicit' $id */ - #[Api] + #[Required] public string $id = 'illicit'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/IllicitAlcohol.php b/src/Content/ContentSubmitParams/Policy/IllicitAlcohol.php index 24e4f73..c17d458 100644 --- a/src/Content/ContentSubmitParams/Policy/IllicitAlcohol.php +++ b/src/Content/ContentSubmitParams/Policy/IllicitAlcohol.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class IllicitAlcohol implements BaseModel use SdkModel; /** @var 'illicit_alcohol' $id */ - #[Api] + #[Required] public string $id = 'illicit_alcohol'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/IllicitDrugs.php b/src/Content/ContentSubmitParams/Policy/IllicitDrugs.php index 80eaa7e..f5e3f48 100644 --- a/src/Content/ContentSubmitParams/Policy/IllicitDrugs.php +++ b/src/Content/ContentSubmitParams/Policy/IllicitDrugs.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class IllicitDrugs implements BaseModel use SdkModel; /** @var 'illicit_drugs' $id */ - #[Api] + #[Required] public string $id = 'illicit_drugs'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/IllicitFirearms.php b/src/Content/ContentSubmitParams/Policy/IllicitFirearms.php index f9c1923..91e18d4 100644 --- a/src/Content/ContentSubmitParams/Policy/IllicitFirearms.php +++ b/src/Content/ContentSubmitParams/Policy/IllicitFirearms.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class IllicitFirearms implements BaseModel use SdkModel; /** @var 'illicit_firearms' $id */ - #[Api] + #[Required] public string $id = 'illicit_firearms'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/IllicitGambling.php b/src/Content/ContentSubmitParams/Policy/IllicitGambling.php index c661d2b..a1c03a3 100644 --- a/src/Content/ContentSubmitParams/Policy/IllicitGambling.php +++ b/src/Content/ContentSubmitParams/Policy/IllicitGambling.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class IllicitGambling implements BaseModel use SdkModel; /** @var 'illicit_gambling' $id */ - #[Api] + #[Required] public string $id = 'illicit_gambling'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/IllicitTobacco.php b/src/Content/ContentSubmitParams/Policy/IllicitTobacco.php index 9924510..3075b89 100644 --- a/src/Content/ContentSubmitParams/Policy/IllicitTobacco.php +++ b/src/Content/ContentSubmitParams/Policy/IllicitTobacco.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class IllicitTobacco implements BaseModel use SdkModel; /** @var 'illicit_tobacco' $id */ - #[Api] + #[Required] public string $id = 'illicit_tobacco'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/PersonalInformation.php b/src/Content/ContentSubmitParams/Policy/PersonalInformation.php index 0210782..b00eaf2 100644 --- a/src/Content/ContentSubmitParams/Policy/PersonalInformation.php +++ b/src/Content/ContentSubmitParams/Policy/PersonalInformation.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,10 +19,10 @@ final class PersonalInformation implements BaseModel use SdkModel; /** @var 'personal_information' $id */ - #[Api] + #[Required] public string $id = 'personal_information'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/PiiMasking.php b/src/Content/ContentSubmitParams/Policy/PiiMasking.php index ac49b6d..4176edb 100644 --- a/src/Content/ContentSubmitParams/Policy/PiiMasking.php +++ b/src/Content/ContentSubmitParams/Policy/PiiMasking.php @@ -6,7 +6,7 @@ use ModerationAPI\Content\ContentSubmitParams\Policy\PiiMasking\Entity; use ModerationAPI\Content\ContentSubmitParams\Policy\PiiMasking\Entity\ID; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,11 +19,11 @@ final class PiiMasking implements BaseModel use SdkModel; /** @var 'pii' $id */ - #[Api] + #[Required] public string $id = 'pii'; /** @var array $entities */ - #[Api(map: Entity::class)] + #[Required(map: Entity::class)] public array $entities; /** diff --git a/src/Content/ContentSubmitParams/Policy/PiiMasking/Entity.php b/src/Content/ContentSubmitParams/Policy/PiiMasking/Entity.php index 183578f..6a8407c 100644 --- a/src/Content/ContentSubmitParams/Policy/PiiMasking/Entity.php +++ b/src/Content/ContentSubmitParams/Policy/PiiMasking/Entity.php @@ -5,7 +5,8 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy\PiiMasking; use ModerationAPI\Content\ContentSubmitParams\Policy\PiiMasking\Entity\ID; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -24,19 +25,19 @@ final class Entity implements BaseModel use SdkModel; /** @var value-of $id */ - #[Api(enum: ID::class)] + #[Required(enum: ID::class)] public string $id; - #[Api] + #[Required] public bool $enable; - #[Api] + #[Required] public bool $flag; - #[Api] + #[Required] public bool $shouldMask; - #[Api(optional: true)] + #[Optional] public ?string $mask; /** diff --git a/src/Content/ContentSubmitParams/Policy/Political.php b/src/Content/ContentSubmitParams/Policy/Political.php index bf61891..5e3e62a 100644 --- a/src/Content/ContentSubmitParams/Policy/Political.php +++ b/src/Content/ContentSubmitParams/Policy/Political.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Political implements BaseModel use SdkModel; /** @var 'political' $id */ - #[Api] + #[Required] public string $id = 'political'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Profanity.php b/src/Content/ContentSubmitParams/Policy/Profanity.php index 5cb4fca..be12039 100644 --- a/src/Content/ContentSubmitParams/Policy/Profanity.php +++ b/src/Content/ContentSubmitParams/Policy/Profanity.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Profanity implements BaseModel use SdkModel; /** @var 'profanity' $id */ - #[Api] + #[Required] public string $id = 'profanity'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Religion.php b/src/Content/ContentSubmitParams/Policy/Religion.php index 0f809b2..b2b27ea 100644 --- a/src/Content/ContentSubmitParams/Policy/Religion.php +++ b/src/Content/ContentSubmitParams/Policy/Religion.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Religion implements BaseModel use SdkModel; /** @var 'religion' $id */ - #[Api] + #[Required] public string $id = 'religion'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/SelfHarm.php b/src/Content/ContentSubmitParams/Policy/SelfHarm.php index cdc37ac..e780bb2 100644 --- a/src/Content/ContentSubmitParams/Policy/SelfHarm.php +++ b/src/Content/ContentSubmitParams/Policy/SelfHarm.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class SelfHarm implements BaseModel use SdkModel; /** @var 'self_harm' $id */ - #[Api] + #[Required] public string $id = 'self_harm'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/SelfPromotion.php b/src/Content/ContentSubmitParams/Policy/SelfPromotion.php index 5f4bc35..ff8dd7a 100644 --- a/src/Content/ContentSubmitParams/Policy/SelfPromotion.php +++ b/src/Content/ContentSubmitParams/Policy/SelfPromotion.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class SelfPromotion implements BaseModel use SdkModel; /** @var 'self_promotion' $id */ - #[Api] + #[Required] public string $id = 'self_promotion'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Sexual.php b/src/Content/ContentSubmitParams/Policy/Sexual.php index 623a3b4..3d794b0 100644 --- a/src/Content/ContentSubmitParams/Policy/Sexual.php +++ b/src/Content/ContentSubmitParams/Policy/Sexual.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Sexual implements BaseModel use SdkModel; /** @var 'sexual' $id */ - #[Api] + #[Required] public string $id = 'sexual'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Spam.php b/src/Content/ContentSubmitParams/Policy/Spam.php index 5a2c62d..2b292b3 100644 --- a/src/Content/ContentSubmitParams/Policy/Spam.php +++ b/src/Content/ContentSubmitParams/Policy/Spam.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Spam implements BaseModel use SdkModel; /** @var 'spam' $id */ - #[Api] + #[Required] public string $id = 'spam'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/Toxicity.php b/src/Content/ContentSubmitParams/Policy/Toxicity.php index 6b1788f..0cd67e9 100644 --- a/src/Content/ContentSubmitParams/Policy/Toxicity.php +++ b/src/Content/ContentSubmitParams/Policy/Toxicity.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Toxicity implements BaseModel use SdkModel; /** @var 'toxicity' $id */ - #[Api] + #[Required] public string $id = 'toxicity'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/ToxicitySevere.php b/src/Content/ContentSubmitParams/Policy/ToxicitySevere.php index 7f84835..93ee744 100644 --- a/src/Content/ContentSubmitParams/Policy/ToxicitySevere.php +++ b/src/Content/ContentSubmitParams/Policy/ToxicitySevere.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class ToxicitySevere implements BaseModel use SdkModel; /** @var 'toxicity_severe' $id */ - #[Api] + #[Required] public string $id = 'toxicity_severe'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitParams/Policy/URLMasking.php b/src/Content/ContentSubmitParams/Policy/URLMasking.php index 23ff1f7..9c6cc2b 100644 --- a/src/Content/ContentSubmitParams/Policy/URLMasking.php +++ b/src/Content/ContentSubmitParams/Policy/URLMasking.php @@ -6,7 +6,7 @@ use ModerationAPI\Content\ContentSubmitParams\Policy\URLMasking\Entity; use ModerationAPI\Content\ContentSubmitParams\Policy\URLMasking\Entity\ID; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,11 +19,11 @@ final class URLMasking implements BaseModel use SdkModel; /** @var 'url' $id */ - #[Api] + #[Required] public string $id = 'url'; /** @var array $entities */ - #[Api(map: Entity::class)] + #[Required(map: Entity::class)] public array $entities; /** diff --git a/src/Content/ContentSubmitParams/Policy/URLMasking/Entity.php b/src/Content/ContentSubmitParams/Policy/URLMasking/Entity.php index 3bb4c4e..bcdbf0b 100644 --- a/src/Content/ContentSubmitParams/Policy/URLMasking/Entity.php +++ b/src/Content/ContentSubmitParams/Policy/URLMasking/Entity.php @@ -5,7 +5,8 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy\URLMasking; use ModerationAPI\Content\ContentSubmitParams\Policy\URLMasking\Entity\ID; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -24,19 +25,19 @@ final class Entity implements BaseModel use SdkModel; /** @var value-of $id */ - #[Api(enum: ID::class)] + #[Required(enum: ID::class)] public string $id; - #[Api] + #[Required] public bool $enable; - #[Api] + #[Required] public bool $flag; - #[Api] + #[Required] public bool $shouldMask; - #[Api(optional: true)] + #[Optional] public ?string $mask; /** diff --git a/src/Content/ContentSubmitParams/Policy/Violence.php b/src/Content/ContentSubmitParams/Policy/Violence.php index f12b48f..fd46ce5 100644 --- a/src/Content/ContentSubmitParams/Policy/Violence.php +++ b/src/Content/ContentSubmitParams/Policy/Violence.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitParams\Policy; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -17,10 +17,10 @@ final class Violence implements BaseModel use SdkModel; /** @var 'violence' $id */ - #[Api] + #[Required] public string $id = 'violence'; - #[Api] + #[Required] public bool $flag; /** diff --git a/src/Content/ContentSubmitResponse.php b/src/Content/ContentSubmitResponse.php index 737caea..8df0a89 100644 --- a/src/Content/ContentSubmitResponse.php +++ b/src/Content/ContentSubmitResponse.php @@ -28,7 +28,8 @@ use ModerationAPI\Content\ContentSubmitResponse\Recommendation; use ModerationAPI\Content\ContentSubmitResponse\Recommendation\Action; use ModerationAPI\Content\ContentSubmitResponse\Recommendation\ReasonCode; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -52,19 +53,19 @@ final class ContentSubmitResponse implements BaseModel /** * The author of the content if your account has authors enabled. Requires you to send authorId when submitting content. */ - #[Api] + #[Required] public ?Author $author; /** * Potentially modified content. */ - #[Api] + #[Required] public Content $content; /** * The evaluation of the content after running the channel policies. */ - #[Api] + #[Required] public Evaluation $evaluation; /** @@ -72,13 +73,13 @@ final class ContentSubmitResponse implements BaseModel * * @var list $insights */ - #[Api(list: Insight::class)] + #[Required(list: Insight::class)] public array $insights; /** * Metadata about the moderation request. */ - #[Api] + #[Required] public Meta $meta; /** @@ -86,13 +87,13 @@ final class ContentSubmitResponse implements BaseModel * * @var list $policies */ - #[Api(list: Policy::class)] + #[Required(list: Policy::class)] public array $policies; /** * The recommendation for the content based on the evaluation. */ - #[Api] + #[Required] public Recommendation $recommendation; /** @@ -100,7 +101,7 @@ final class ContentSubmitResponse implements BaseModel * * @var list|null $errors */ - #[Api(list: Error::class, optional: true)] + #[Optional(list: Error::class)] public ?array $errors; /** diff --git a/src/Content/ContentSubmitResponse/Author.php b/src/Content/ContentSubmitResponse/Author.php index d046ce7..55ef7a3 100644 --- a/src/Content/ContentSubmitResponse/Author.php +++ b/src/Content/ContentSubmitResponse/Author.php @@ -7,7 +7,8 @@ use ModerationAPI\Content\ContentSubmitResponse\Author\Block; use ModerationAPI\Content\ContentSubmitResponse\Author\Status; use ModerationAPI\Content\ContentSubmitResponse\Author\TrustLevel; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -30,13 +31,13 @@ final class Author implements BaseModel /** * Author ID in Moderation API. */ - #[Api] + #[Required] public string $id; /** * Block or suspension details, if applicable. Null if the author is enabled. */ - #[Api] + #[Required] public ?Block $block; /** @@ -44,16 +45,16 @@ final class Author implements BaseModel * * @var value-of $status */ - #[Api(enum: Status::class)] + #[Required(enum: Status::class)] public string $status; - #[Api] + #[Required] public TrustLevel $trust_level; /** * The author's ID from your system. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $external_id; /** diff --git a/src/Content/ContentSubmitResponse/Author/Block.php b/src/Content/ContentSubmitResponse/Author/Block.php index 2c797d5..d77868b 100644 --- a/src/Content/ContentSubmitResponse/Author/Block.php +++ b/src/Content/ContentSubmitResponse/Author/Block.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Author; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,13 +21,13 @@ final class Block implements BaseModel /** * The moderators reason why the author was blocked or suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?string $reason; /** * The timestamp until which they are blocked if the author is suspended. */ - #[Api(nullable: true, optional: true)] + #[Optional(nullable: true)] public ?float $until; public function __construct() diff --git a/src/Content/ContentSubmitResponse/Author/TrustLevel.php b/src/Content/ContentSubmitResponse/Author/TrustLevel.php index 29649d5..50f4449 100644 --- a/src/Content/ContentSubmitResponse/Author/TrustLevel.php +++ b/src/Content/ContentSubmitResponse/Author/TrustLevel.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Author; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class TrustLevel implements BaseModel /** * Author trust level (-1, 0, 1, 2, 3, or 4). */ - #[Api] + #[Required] public float $level; /** * True if the trust level was set manually by a moderator. */ - #[Api] + #[Required] public bool $manual; /** diff --git a/src/Content/ContentSubmitResponse/Content.php b/src/Content/ContentSubmitResponse/Content.php index fb2cd8c..f20e81b 100644 --- a/src/Content/ContentSubmitResponse/Content.php +++ b/src/Content/ContentSubmitResponse/Content.php @@ -9,7 +9,7 @@ use ModerationAPI\Content\ContentSubmitResponse\Content\Modified\ModifiedNestedObjectContent\Image; use ModerationAPI\Content\ContentSubmitResponse\Content\Modified\ModifiedNestedObjectContent\Text; use ModerationAPI\Content\ContentSubmitResponse\Content\Modified\ModifiedNestedObjectContent\Video; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -30,13 +30,13 @@ final class Content implements BaseModel /** * The unique identifier for the content. Either the contentId provided by you or an autogenerated ID. */ - #[Api] + #[Required] public string $id; /** * Whether any values have been masked. */ - #[Api] + #[Required] public bool $masked; /** @@ -44,7 +44,7 @@ final class Content implements BaseModel * * @var string|array|array|null $modified */ - #[Api(union: Modified::class)] + #[Required(union: Modified::class)] public string|array|null $modified; /** diff --git a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Audio.php b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Audio.php index 246d526..4117683 100644 --- a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Audio.php +++ b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Audio.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Content\Modified\ModifiedNestedObjectContent; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Audio implements BaseModel use SdkModel; /** @var 'audio' $type */ - #[Api] + #[Required] public string $type = 'audio'; /** * The URL of the audio content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Image.php b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Image.php index 4c0290f..da3152f 100644 --- a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Image.php +++ b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Image.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Content\Modified\ModifiedNestedObjectContent; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Image implements BaseModel use SdkModel; /** @var 'image' $type */ - #[Api] + #[Required] public string $type = 'image'; /** * A public URL of the image content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Text.php b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Text.php index 5377138..49a6fac 100644 --- a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Text.php +++ b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Text.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Content\Modified\ModifiedNestedObjectContent; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Text implements BaseModel use SdkModel; /** @var 'text' $type */ - #[Api] + #[Required] public string $type = 'text'; /** * The content text. */ - #[Api] + #[Required] public string $text; /** diff --git a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Video.php b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Video.php index 3c072d1..e5267c0 100644 --- a/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Video.php +++ b/src/Content/ContentSubmitResponse/Content/Modified/ModifiedNestedObjectContent/Video.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Content\Modified\ModifiedNestedObjectContent; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -19,13 +19,13 @@ final class Video implements BaseModel use SdkModel; /** @var 'video' $type */ - #[Api] + #[Required] public string $type = 'video'; /** * A public URL of the video content. */ - #[Api] + #[Required] public string $url; /** diff --git a/src/Content/ContentSubmitResponse/Error.php b/src/Content/ContentSubmitResponse/Error.php index 9aa096a..9a5815d 100644 --- a/src/Content/ContentSubmitResponse/Error.php +++ b/src/Content/ContentSubmitResponse/Error.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -16,10 +16,10 @@ final class Error implements BaseModel /** @use SdkModel */ use SdkModel; - #[Api] + #[Required] public string $id; - #[Api] + #[Required] public string $message; /** diff --git a/src/Content/ContentSubmitResponse/Evaluation.php b/src/Content/ContentSubmitResponse/Evaluation.php index 706a266..3c3d1d1 100644 --- a/src/Content/ContentSubmitResponse/Evaluation.php +++ b/src/Content/ContentSubmitResponse/Evaluation.php @@ -4,7 +4,8 @@ namespace ModerationAPI\Content\ContentSubmitResponse; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -26,25 +27,25 @@ final class Evaluation implements BaseModel /** * The probability that the content should be flagged. */ - #[Api] + #[Required] public float $flag_probability; /** * Whether the content was flagged by any policy. */ - #[Api] + #[Required] public bool $flagged; /** * The severity score of the content. A higher score indicates more severe content. */ - #[Api] + #[Required] public float $severity_score; /** * Whether the content was flagged for Unicode spoofing. */ - #[Api(optional: true)] + #[Optional] public ?bool $unicode_spoofed; /** diff --git a/src/Content/ContentSubmitResponse/Insight/LanguageInsight.php b/src/Content/ContentSubmitResponse/Insight/LanguageInsight.php index e0e2875..89d5f84 100644 --- a/src/Content/ContentSubmitResponse/Insight/LanguageInsight.php +++ b/src/Content/ContentSubmitResponse/Insight/LanguageInsight.php @@ -4,7 +4,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Insight; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -21,17 +21,17 @@ final class LanguageInsight implements BaseModel use SdkModel; /** @var 'language' $id */ - #[Api] + #[Required] public string $id = 'language'; /** @var 'insight' $type */ - #[Api] + #[Required] public string $type = 'insight'; - #[Api] + #[Required] public float $probability; - #[Api] + #[Required] public ?string $value; /** diff --git a/src/Content/ContentSubmitResponse/Insight/SentimentInsight.php b/src/Content/ContentSubmitResponse/Insight/SentimentInsight.php index 0553e1a..9d25799 100644 --- a/src/Content/ContentSubmitResponse/Insight/SentimentInsight.php +++ b/src/Content/ContentSubmitResponse/Insight/SentimentInsight.php @@ -5,7 +5,7 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Insight; use ModerationAPI\Content\ContentSubmitResponse\Insight\SentimentInsight\Value; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -25,18 +25,18 @@ final class SentimentInsight implements BaseModel use SdkModel; /** @var 'sentiment' $id */ - #[Api] + #[Required] public string $id = 'sentiment'; /** @var 'insight' $type */ - #[Api] + #[Required] public string $type = 'insight'; - #[Api] + #[Required] public float $probability; /** @var value-of|null $value */ - #[Api(enum: Value::class)] + #[Required(enum: Value::class)] public ?string $value; /** diff --git a/src/Content/ContentSubmitResponse/Meta.php b/src/Content/ContentSubmitResponse/Meta.php index 1a6cad2..9841602 100644 --- a/src/Content/ContentSubmitResponse/Meta.php +++ b/src/Content/ContentSubmitResponse/Meta.php @@ -5,7 +5,8 @@ namespace ModerationAPI\Content\ContentSubmitResponse; use ModerationAPI\Content\ContentSubmitResponse\Meta\Status; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -28,20 +29,20 @@ final class Meta implements BaseModel /** * The unique key of the channel where the content was handled. Either the channel provided by you or automatically routed. */ - #[Api] + #[Required] public string $channel_key; /** @var value-of $status */ - #[Api(enum: Status::class)] + #[Required(enum: Status::class)] public string $status; - #[Api] + #[Required] public float $timestamp; - #[Api] + #[Required] public float $usage; - #[Api(optional: true)] + #[Optional] public ?string $processing_time; /** diff --git a/src/Content/ContentSubmitResponse/Policy/ClassifierOutput.php b/src/Content/ContentSubmitResponse/Policy/ClassifierOutput.php index ef1a432..163fec2 100644 --- a/src/Content/ContentSubmitResponse/Policy/ClassifierOutput.php +++ b/src/Content/ContentSubmitResponse/Policy/ClassifierOutput.php @@ -5,7 +5,8 @@ namespace ModerationAPI\Content\ContentSubmitResponse\Policy; use ModerationAPI\Content\ContentSubmitResponse\Policy\ClassifierOutput\Label; -use ModerationAPI\Core\Attributes\Api; +use ModerationAPI\Core\Attributes\Optional; +use ModerationAPI\Core\Attributes\Required; use ModerationAPI\Core\Concerns\SdkModel; use ModerationAPI\Core\Contracts\BaseModel; @@ -27,19 +28,19 @@ final class ClassifierOutput implements BaseModel use SdkModel; /** @var 'classifier' $type */ - #[Api] + #[Required] public string $type = 'classifier'; /** * The unique identifier for the classifier output. */ - #[Api] + #[Required] public string $id; - #[Api] + #[Required] public bool $flagged; - #[Api] + #[Required] public float $probability; /** @@ -47,11 +48,11 @@ final class ClassifierOutput implements BaseModel * * @var list|null $flagged_fields */ - #[Api(list: 'string', optional: true)] + #[Optional(list: 'string')] public ?array $flagged_fields; /** @var list