diff --git a/.fern/metadata.json b/.fern/metadata.json index d91dfb8..0734e70 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -11,10 +11,10 @@ "homepage": "https://www.cloudpdf.com" } }, - "originGitCommit": "37273d7d149f893255344f0f8e9ff7b2dfbc8057", + "originGitCommit": "e074ee8465006a168ff6d8cfa73928df13ae159c", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "3.1.0", + "requestedVersion": "3.2.0", "ciProvider": "github", - "sdkVersion": "3.1.0" + "sdkVersion": "3.2.0" } \ No newline at end of file diff --git a/README.md b/README.md index b5e6434..691634f 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ use CloudPDF\Doc\Requests\DocChangesRequest; use CloudPDF\Doc\Types\DocChangesRequestChangesItem; $client = new CloudPDFClient( - embedPdfVersion: '3.1', + embedPdfVersion: '3.2', token: '', ); $client->doc->changes( diff --git a/cloudpdf-generation.json b/cloudpdf-generation.json index a28cf84..1673aac 100644 --- a/cloudpdf-generation.json +++ b/cloudpdf-generation.json @@ -1,12 +1,12 @@ { "language": "php", - "canonicalVersion": "3.1.0", - "sdkVersion": "3.1.0", + "canonicalVersion": "3.2.0", + "sdkVersion": "3.2.0", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "5e62a5502b502635c63f989110a74f98a9f7f3f3a3696d6f1fccb4ea39e1efe3", - "gitCommit": "37273d7d149f893255344f0f8e9ff7b2dfbc8057", + "openapiSha256": "92b335b44d0957c70139f64ee3dd92e19d9d3a1452c90077002ed31dbddc3e7d", + "gitCommit": "e074ee8465006a168ff6d8cfa73928df13ae159c", "gitCommitIsDirty": false }, "fern": { diff --git a/src/CloudPDFClient.php b/src/CloudPDFClient.php index 8a300e3..efe1838 100644 --- a/src/CloudPDFClient.php +++ b/src/CloudPDFClient.php @@ -82,11 +82,11 @@ public function __construct( ?array $options = null, ) { $defaultHeaders = [ - 'EmbedPDF-Version' => '3.1', + 'EmbedPDF-Version' => '3.2', 'X-Fern-Language' => 'PHP', 'X-Fern-SDK-Name' => 'CloudPDF', - 'X-Fern-SDK-Version' => '3.1.0', - 'User-Agent' => 'cloudpdf/sdk/3.1.0', + 'X-Fern-SDK-Version' => '3.2.0', + 'User-Agent' => 'cloudpdf/sdk/3.2.0', ]; if ($token != null) { $defaultHeaders['Authorization'] = "Bearer $token"; diff --git a/src/Types/ChangeItem.php b/src/Types/ChangeItem.php index c6bd034..61cdccd 100644 --- a/src/Types/ChangeItem.php +++ b/src/Types/ChangeItem.php @@ -14,12 +14,14 @@ class ChangeItem extends JsonSerializableType * |'annotations.update' * |'annotations.delete' * |'annotations.reorder' + * |'annotations.copy' * |'annotations.restore' * |'forms.setValue' * |'forms.setDisplay' * |'forms.setAppearanceText' * |'forms.reset' * |'forms.create' + * |'forms.copy' * |'forms.update' * |'forms.delete' * |'forms.restore' @@ -61,12 +63,14 @@ class ChangeItem extends JsonSerializableType * |ChangeItemAnnotationsUpdate * |ChangeItemAnnotationsDelete * |ChangeItemAnnotationsReorder + * |ChangeItemAnnotationsCopy * |ChangeItemAnnotationsRestore * |ChangeItemFormsSetValue * |ChangeItemFormsSetDisplay * |ChangeItemFormsSetAppearanceText * |ChangeItemFormsReset * |ChangeItemFormsCreate + * |ChangeItemFormsCopy * |ChangeItemFormsUpdate * |ChangeItemFormsDelete * |ChangeItemFormsRestore @@ -109,12 +113,14 @@ class ChangeItem extends JsonSerializableType * |'annotations.update' * |'annotations.delete' * |'annotations.reorder' + * |'annotations.copy' * |'annotations.restore' * |'forms.setValue' * |'forms.setDisplay' * |'forms.setAppearanceText' * |'forms.reset' * |'forms.create' + * |'forms.copy' * |'forms.update' * |'forms.delete' * |'forms.restore' @@ -152,12 +158,14 @@ class ChangeItem extends JsonSerializableType * |ChangeItemAnnotationsUpdate * |ChangeItemAnnotationsDelete * |ChangeItemAnnotationsReorder + * |ChangeItemAnnotationsCopy * |ChangeItemAnnotationsRestore * |ChangeItemFormsSetValue * |ChangeItemFormsSetDisplay * |ChangeItemFormsSetAppearanceText * |ChangeItemFormsReset * |ChangeItemFormsCreate + * |ChangeItemFormsCopy * |ChangeItemFormsUpdate * |ChangeItemFormsDelete * |ChangeItemFormsRestore @@ -258,6 +266,18 @@ public static function annotationsReorder(ChangeItemAnnotationsReorder $annotati ]); } + /** + * @param ChangeItemAnnotationsCopy $annotationsCopy + * @return ChangeItem + */ + public static function annotationsCopy(ChangeItemAnnotationsCopy $annotationsCopy): ChangeItem + { + return new ChangeItem([ + 'type' => 'annotations.copy', + 'value' => $annotationsCopy, + ]); + } + /** * @param ChangeItemAnnotationsRestore $annotationsRestore * @return ChangeItem @@ -330,6 +350,18 @@ public static function formsCreate(ChangeItemFormsCreate $formsCreate): ChangeIt ]); } + /** + * @param ChangeItemFormsCopy $formsCopy + * @return ChangeItem + */ + public static function formsCopy(ChangeItemFormsCopy $formsCopy): ChangeItem + { + return new ChangeItem([ + 'type' => 'forms.copy', + 'value' => $formsCopy, + ]); + } + /** * @param ChangeItemFormsUpdate $formsUpdate * @return ChangeItem @@ -788,6 +820,28 @@ public function asAnnotationsReorder(): ChangeItemAnnotationsReorder return $this->value; } + /** + * @return bool + */ + public function isAnnotationsCopy(): bool + { + return $this->value instanceof ChangeItemAnnotationsCopy && $this->type === 'annotations.copy'; + } + + /** + * @return ChangeItemAnnotationsCopy + */ + public function asAnnotationsCopy(): ChangeItemAnnotationsCopy + { + if (!($this->value instanceof ChangeItemAnnotationsCopy && $this->type === 'annotations.copy')) { + throw new Exception( + "Expected annotations.copy; got " . $this->type . " with value of type " . get_debug_type($this->value), + ); + } + + return $this->value; + } + /** * @return bool */ @@ -920,6 +974,28 @@ public function asFormsCreate(): ChangeItemFormsCreate return $this->value; } + /** + * @return bool + */ + public function isFormsCopy(): bool + { + return $this->value instanceof ChangeItemFormsCopy && $this->type === 'forms.copy'; + } + + /** + * @return ChangeItemFormsCopy + */ + public function asFormsCopy(): ChangeItemFormsCopy + { + if (!($this->value instanceof ChangeItemFormsCopy && $this->type === 'forms.copy')) { + throw new Exception( + "Expected forms.copy; got " . $this->type . " with value of type " . get_debug_type($this->value), + ); + } + + return $this->value; + } + /** * @return bool */ @@ -1598,6 +1674,10 @@ public function jsonSerialize(): array $value = $this->asAnnotationsReorder()->jsonSerialize(); $result = array_merge($value, $result); break; + case 'annotations.copy': + $value = $this->asAnnotationsCopy()->jsonSerialize(); + $result = array_merge($value, $result); + break; case 'annotations.restore': $value = $this->asAnnotationsRestore()->jsonSerialize(); $result = array_merge($value, $result); @@ -1622,6 +1702,10 @@ public function jsonSerialize(): array $value = $this->asFormsCreate()->jsonSerialize(); $result = array_merge($value, $result); break; + case 'forms.copy': + $value = $this->asFormsCopy()->jsonSerialize(); + $result = array_merge($value, $result); + break; case 'forms.update': $value = $this->asFormsUpdate()->jsonSerialize(); $result = array_merge($value, $result); @@ -1789,6 +1873,9 @@ public static function jsonDeserialize(array $data): static case 'annotations.reorder': $args['value'] = ChangeItemAnnotationsReorder::jsonDeserialize($data); break; + case 'annotations.copy': + $args['value'] = ChangeItemAnnotationsCopy::jsonDeserialize($data); + break; case 'annotations.restore': $args['value'] = ChangeItemAnnotationsRestore::jsonDeserialize($data); break; @@ -1807,6 +1894,9 @@ public static function jsonDeserialize(array $data): static case 'forms.create': $args['value'] = ChangeItemFormsCreate::jsonDeserialize($data); break; + case 'forms.copy': + $args['value'] = ChangeItemFormsCopy::jsonDeserialize($data); + break; case 'forms.update': $args['value'] = ChangeItemFormsUpdate::jsonDeserialize($data); break; diff --git a/src/Types/ChangeItemAnnotationsCopy.php b/src/Types/ChangeItemAnnotationsCopy.php new file mode 100644 index 0000000..557443e --- /dev/null +++ b/src/Types/ChangeItemAnnotationsCopy.php @@ -0,0 +1,59 @@ + $annotations + */ + #[JsonProperty('annotations'), ArrayType([Annotation::class])] + public array $annotations; + + /** + * @var array $refMap + */ + #[JsonProperty('refMap'), ArrayType([ChangeItemAnnotationsCopyRefMapItem::class])] + public array $refMap; + + /** + * @var array $dropped + */ + #[JsonProperty('dropped'), ArrayType([ChangeItemAnnotationsCopyDroppedItem::class])] + public array $dropped; + + /** + * @var AnnotationMutationMeta $meta + */ + #[JsonProperty('meta')] + public AnnotationMutationMeta $meta; + + /** + * @param array{ + * annotations: array, + * refMap: array, + * dropped: array, + * meta: AnnotationMutationMeta, + * } $values + */ + public function __construct( + array $values, + ) { + $this->annotations = $values['annotations']; + $this->refMap = $values['refMap']; + $this->dropped = $values['dropped']; + $this->meta = $values['meta']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeItemAnnotationsCopyDroppedItem.php b/src/Types/ChangeItemAnnotationsCopyDroppedItem.php new file mode 100644 index 0000000..9c331d8 --- /dev/null +++ b/src/Types/ChangeItemAnnotationsCopyDroppedItem.php @@ -0,0 +1,50 @@ + $reason + */ + #[JsonProperty('reason')] + public string $reason; + + /** + * @param array{ + * ref: AnnotationRef, + * reason: value-of, + * field?: ?string, + * } $values + */ + public function __construct( + array $values, + ) { + $this->ref = $values['ref']; + $this->field = $values['field'] ?? null; + $this->reason = $values['reason']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeItemAnnotationsCopyDroppedItemReason.php b/src/Types/ChangeItemAnnotationsCopyDroppedItemReason.php new file mode 100644 index 0000000..9d7de43 --- /dev/null +++ b/src/Types/ChangeItemAnnotationsCopyDroppedItemReason.php @@ -0,0 +1,17 @@ +from = $values['from']; + $this->to = $values['to']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeItemFormsCopy.php b/src/Types/ChangeItemFormsCopy.php new file mode 100644 index 0000000..34dd0c2 --- /dev/null +++ b/src/Types/ChangeItemFormsCopy.php @@ -0,0 +1,75 @@ + $fields + */ + #[JsonProperty('fields'), ArrayType([FormField::class])] + public array $fields; + + /** + * @var array $widgets + */ + #[JsonProperty('widgets'), ArrayType([WidgetAnnotation::class])] + public array $widgets; + + /** + * @var array $refMap + */ + #[JsonProperty('refMap'), ArrayType([ChangeItemFormsCopyRefMapItem::class])] + public array $refMap; + + /** + * @var array $dropped + */ + #[JsonProperty('dropped'), ArrayType([ChangeItemFormsCopyDroppedItem::class])] + public array $dropped; + + /** + * @var ?array $calculationOrder + */ + #[JsonProperty('calculationOrder'), ArrayType([FormFieldRef::class])] + public ?array $calculationOrder; + + /** + * @var FormMutationMeta $meta + */ + #[JsonProperty('meta')] + public FormMutationMeta $meta; + + /** + * @param array{ + * fields: array, + * widgets: array, + * refMap: array, + * dropped: array, + * meta: FormMutationMeta, + * calculationOrder?: ?array, + * } $values + */ + public function __construct( + array $values, + ) { + $this->fields = $values['fields']; + $this->widgets = $values['widgets']; + $this->refMap = $values['refMap']; + $this->dropped = $values['dropped']; + $this->calculationOrder = $values['calculationOrder'] ?? null; + $this->meta = $values['meta']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeItemFormsCopyDroppedItem.php b/src/Types/ChangeItemFormsCopyDroppedItem.php new file mode 100644 index 0000000..8acf5de --- /dev/null +++ b/src/Types/ChangeItemFormsCopyDroppedItem.php @@ -0,0 +1,58 @@ + $reason + */ + #[JsonProperty('reason')] + public string $reason; + + /** + * @param array{ + * reason: value-of, + * ref?: ?FormFieldRef, + * widget?: ?AnnotationRef, + * field?: ?string, + * } $values + */ + public function __construct( + array $values, + ) { + $this->ref = $values['ref'] ?? null; + $this->widget = $values['widget'] ?? null; + $this->field = $values['field'] ?? null; + $this->reason = $values['reason']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeItemFormsCopyDroppedItemReason.php b/src/Types/ChangeItemFormsCopyDroppedItemReason.php new file mode 100644 index 0000000..33e184c --- /dev/null +++ b/src/Types/ChangeItemFormsCopyDroppedItemReason.php @@ -0,0 +1,12 @@ +from = $values['from']; + $this->to = $values['to']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeItemSkippedOp.php b/src/Types/ChangeItemSkippedOp.php index 067d3a8..4b246b4 100644 --- a/src/Types/ChangeItemSkippedOp.php +++ b/src/Types/ChangeItemSkippedOp.php @@ -8,11 +8,13 @@ enum ChangeItemSkippedOp: string case AnnotationsUpdate = "annotations.update"; case AnnotationsDelete = "annotations.delete"; case AnnotationsReorder = "annotations.reorder"; + case AnnotationsCopy = "annotations.copy"; case FormsSetValue = "forms.setValue"; case FormsSetDisplay = "forms.setDisplay"; case FormsSetAppearanceText = "forms.setAppearanceText"; case FormsReset = "forms.reset"; case FormsCreate = "forms.create"; + case FormsCopy = "forms.copy"; case FormsUpdate = "forms.update"; case FormsDelete = "forms.delete"; case FormsAddWidget = "forms.addWidget"; diff --git a/src/Types/ChangeOp.php b/src/Types/ChangeOp.php index 420d36b..af46a41 100644 --- a/src/Types/ChangeOp.php +++ b/src/Types/ChangeOp.php @@ -13,11 +13,13 @@ class ChangeOp extends JsonSerializableType * |'annotations.update' * |'annotations.delete' * |'annotations.reorder' + * |'annotations.copy' * |'forms.setValue' * |'forms.setDisplay' * |'forms.setAppearanceText' * |'forms.reset' * |'forms.create' + * |'forms.copy' * |'forms.update' * |'forms.delete' * |'forms.addWidget' @@ -53,11 +55,13 @@ class ChangeOp extends JsonSerializableType * |ChangeOpAnnotationsUpdate * |ChangeOpAnnotationsDelete * |ChangeOpAnnotationsReorder + * |ChangeOpAnnotationsCopy * |ChangeOpFormsSetValue * |ChangeOpFormsSetDisplay * |ChangeOpFormsSetAppearanceText * |ChangeOpFormsReset * |ChangeOpFormsCreate + * |ChangeOpFormsCopy * |ChangeOpFormsUpdate * |ChangeOpFormsDelete * |ChangeOpFormsAddWidget @@ -94,11 +98,13 @@ class ChangeOp extends JsonSerializableType * |'annotations.update' * |'annotations.delete' * |'annotations.reorder' + * |'annotations.copy' * |'forms.setValue' * |'forms.setDisplay' * |'forms.setAppearanceText' * |'forms.reset' * |'forms.create' + * |'forms.copy' * |'forms.update' * |'forms.delete' * |'forms.addWidget' @@ -130,11 +136,13 @@ class ChangeOp extends JsonSerializableType * |ChangeOpAnnotationsUpdate * |ChangeOpAnnotationsDelete * |ChangeOpAnnotationsReorder + * |ChangeOpAnnotationsCopy * |ChangeOpFormsSetValue * |ChangeOpFormsSetDisplay * |ChangeOpFormsSetAppearanceText * |ChangeOpFormsReset * |ChangeOpFormsCreate + * |ChangeOpFormsCopy * |ChangeOpFormsUpdate * |ChangeOpFormsDelete * |ChangeOpFormsAddWidget @@ -218,6 +226,18 @@ public static function annotationsReorder(ChangeOpAnnotationsReorder $annotation ]); } + /** + * @param ChangeOpAnnotationsCopy $annotationsCopy + * @return ChangeOp + */ + public static function annotationsCopy(ChangeOpAnnotationsCopy $annotationsCopy): ChangeOp + { + return new ChangeOp([ + 'type' => 'annotations.copy', + 'value' => $annotationsCopy, + ]); + } + /** * @param ChangeOpFormsSetValue $formsSetValue * @return ChangeOp @@ -278,6 +298,18 @@ public static function formsCreate(ChangeOpFormsCreate $formsCreate): ChangeOp ]); } + /** + * @param ChangeOpFormsCopy $formsCopy + * @return ChangeOp + */ + public static function formsCopy(ChangeOpFormsCopy $formsCopy): ChangeOp + { + return new ChangeOp([ + 'type' => 'forms.copy', + 'value' => $formsCopy, + ]); + } + /** * @param ChangeOpFormsUpdate $formsUpdate * @return ChangeOp @@ -654,6 +686,28 @@ public function asAnnotationsReorder(): ChangeOpAnnotationsReorder return $this->value; } + /** + * @return bool + */ + public function isAnnotationsCopy(): bool + { + return $this->value instanceof ChangeOpAnnotationsCopy && $this->type === 'annotations.copy'; + } + + /** + * @return ChangeOpAnnotationsCopy + */ + public function asAnnotationsCopy(): ChangeOpAnnotationsCopy + { + if (!($this->value instanceof ChangeOpAnnotationsCopy && $this->type === 'annotations.copy')) { + throw new Exception( + "Expected annotations.copy; got " . $this->type . " with value of type " . get_debug_type($this->value), + ); + } + + return $this->value; + } + /** * @return bool */ @@ -764,6 +818,28 @@ public function asFormsCreate(): ChangeOpFormsCreate return $this->value; } + /** + * @return bool + */ + public function isFormsCopy(): bool + { + return $this->value instanceof ChangeOpFormsCopy && $this->type === 'forms.copy'; + } + + /** + * @return ChangeOpFormsCopy + */ + public function asFormsCopy(): ChangeOpFormsCopy + { + if (!($this->value instanceof ChangeOpFormsCopy && $this->type === 'forms.copy')) { + throw new Exception( + "Expected forms.copy; got " . $this->type . " with value of type " . get_debug_type($this->value), + ); + } + + return $this->value; + } + /** * @return bool */ @@ -1328,6 +1404,10 @@ public function jsonSerialize(): array $value = $this->asAnnotationsReorder()->jsonSerialize(); $result = array_merge($value, $result); break; + case 'annotations.copy': + $value = $this->asAnnotationsCopy()->jsonSerialize(); + $result = array_merge($value, $result); + break; case 'forms.setValue': $value = $this->asFormsSetValue()->jsonSerialize(); $result = array_merge($value, $result); @@ -1348,6 +1428,10 @@ public function jsonSerialize(): array $value = $this->asFormsCreate()->jsonSerialize(); $result = array_merge($value, $result); break; + case 'forms.copy': + $value = $this->asFormsCopy()->jsonSerialize(); + $result = array_merge($value, $result); + break; case 'forms.update': $value = $this->asFormsUpdate()->jsonSerialize(); $result = array_merge($value, $result); @@ -1492,6 +1576,9 @@ public static function jsonDeserialize(array $data): static case 'annotations.reorder': $args['value'] = ChangeOpAnnotationsReorder::jsonDeserialize($data); break; + case 'annotations.copy': + $args['value'] = ChangeOpAnnotationsCopy::jsonDeserialize($data); + break; case 'forms.setValue': $args['value'] = ChangeOpFormsSetValue::jsonDeserialize($data); break; @@ -1507,6 +1594,9 @@ public static function jsonDeserialize(array $data): static case 'forms.create': $args['value'] = ChangeOpFormsCreate::jsonDeserialize($data); break; + case 'forms.copy': + $args['value'] = ChangeOpFormsCopy::jsonDeserialize($data); + break; case 'forms.update': $args['value'] = ChangeOpFormsUpdate::jsonDeserialize($data); break; diff --git a/src/Types/ChangeOpAnnotationsCopy.php b/src/Types/ChangeOpAnnotationsCopy.php new file mode 100644 index 0000000..31b385f --- /dev/null +++ b/src/Types/ChangeOpAnnotationsCopy.php @@ -0,0 +1,59 @@ + $refs + */ + #[JsonProperty('refs'), ArrayType([AnnotationRef::class])] + public array $refs; + + /** + * @var ?PageRef $page + */ + #[JsonProperty('page')] + public ?PageRef $page; + + /** + * @var ?ChangeOpAnnotationsCopyOffset $offset + */ + #[JsonProperty('offset')] + public ?ChangeOpAnnotationsCopyOffset $offset; + + /** + * @var ?array $objectNumbers + */ + #[JsonProperty('objectNumbers'), ArrayType(['integer'])] + public ?array $objectNumbers; + + /** + * @param array{ + * refs: array, + * page?: ?PageRef, + * offset?: ?ChangeOpAnnotationsCopyOffset, + * objectNumbers?: ?array, + * } $values + */ + public function __construct( + array $values, + ) { + $this->refs = $values['refs']; + $this->page = $values['page'] ?? null; + $this->offset = $values['offset'] ?? null; + $this->objectNumbers = $values['objectNumbers'] ?? null; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeOpAnnotationsCopyOffset.php b/src/Types/ChangeOpAnnotationsCopyOffset.php new file mode 100644 index 0000000..8e66462 --- /dev/null +++ b/src/Types/ChangeOpAnnotationsCopyOffset.php @@ -0,0 +1,42 @@ +x = $values['x']; + $this->y = $values['y']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeOpFormsCopy.php b/src/Types/ChangeOpFormsCopy.php new file mode 100644 index 0000000..57877d1 --- /dev/null +++ b/src/Types/ChangeOpFormsCopy.php @@ -0,0 +1,75 @@ + $fields + */ + #[JsonProperty('fields'), ArrayType([FormFieldRef::class])] + public array $fields; + + /** + * @var ?array $widgets + */ + #[JsonProperty('widgets'), ArrayType([AnnotationRef::class])] + public ?array $widgets; + + /** + * @var ?PageRef $page + */ + #[JsonProperty('page')] + public ?PageRef $page; + + /** + * @var ?ChangeOpFormsCopyOffset $offset + */ + #[JsonProperty('offset')] + public ?ChangeOpFormsCopyOffset $offset; + + /** + * @var ?bool $values + */ + #[JsonProperty('values')] + public ?bool $values; + + /** + * @var ?array $objectNumbers + */ + #[JsonProperty('objectNumbers'), ArrayType(['integer'])] + public ?array $objectNumbers; + + /** + * @param array{ + * fields: array, + * widgets?: ?array, + * page?: ?PageRef, + * offset?: ?ChangeOpFormsCopyOffset, + * values?: ?bool, + * objectNumbers?: ?array, + * } $values + */ + public function __construct( + array $values, + ) { + $this->fields = $values['fields']; + $this->widgets = $values['widgets'] ?? null; + $this->page = $values['page'] ?? null; + $this->offset = $values['offset'] ?? null; + $this->values = $values['values'] ?? null; + $this->objectNumbers = $values['objectNumbers'] ?? null; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +} diff --git a/src/Types/ChangeOpFormsCopyOffset.php b/src/Types/ChangeOpFormsCopyOffset.php new file mode 100644 index 0000000..7aeb562 --- /dev/null +++ b/src/Types/ChangeOpFormsCopyOffset.php @@ -0,0 +1,42 @@ +x = $values['x']; + $this->y = $values['y']; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->toJson(); + } +}