additionalProperties = new HashMap<>();
+
+ private Builder() {}
+
+ @java.lang.Override
+ public Builder from(CustomNumericFormat other) {
+ value(other.getValue());
+ alias(other.getAlias());
+ return this;
+ }
+
+ /**
+ * d3-format specifier string (e.g., '.2f', ',.0f', '$,.2f', '.0%', '.2s'). See https://d3js.org/d3-format
+ * d3-format specifier string (e.g., '.2f', ',.0f', '$,.2f', '.0%', '.2s'). See https://d3js.org/d3-format
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ @JsonSetter("value")
+ public _FinalStage value(@NotNull String value) {
+ this.value = Objects.requireNonNull(value, "value must not be null");
+ return this;
+ }
+
+ /**
+ * Name of the predefined format (e.g., 'percent_2', 'currency_1'). Present only when a named format was used.
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ public _FinalStage alias(String alias) {
+ this.alias = Optional.ofNullable(alias);
+ return this;
+ }
+
+ /**
+ * Name of the predefined format (e.g., 'percent_2', 'currency_1'). Present only when a named format was used.
+ */
+ @java.lang.Override
+ @JsonSetter(value = "alias", nulls = Nulls.SKIP)
+ public _FinalStage alias(Optional alias) {
+ this.alias = alias;
+ return this;
+ }
+
+ @java.lang.Override
+ public CustomNumericFormat build() {
+ return new CustomNumericFormat(value, alias, additionalProperties);
+ }
+
+ @java.lang.Override
+ public Builder additionalProperty(String key, Object value) {
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ @java.lang.Override
+ public Builder additionalProperties(Map additionalProperties) {
+ this.additionalProperties.putAll(additionalProperties);
+ return this;
+ }
+ }
+}
diff --git a/src/main/java/com/squareup/square/types/CustomTimeFormat.java b/src/main/java/com/squareup/square/types/CustomTimeFormat.java
new file mode 100644
index 00000000..d6723feb
--- /dev/null
+++ b/src/main/java/com/squareup/square/types/CustomTimeFormat.java
@@ -0,0 +1,137 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.squareup.square.types;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSetter;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.squareup.square.core.ObjectMappers;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import org.jetbrains.annotations.NotNull;
+
+@JsonInclude(JsonInclude.Include.NON_ABSENT)
+@JsonDeserialize(builder = CustomTimeFormat.Builder.class)
+public final class CustomTimeFormat {
+ private final String value;
+
+ private final Map additionalProperties;
+
+ private CustomTimeFormat(String value, Map additionalProperties) {
+ this.value = value;
+ this.additionalProperties = additionalProperties;
+ }
+
+ /**
+ * @return Type of the format (must be 'custom-time')
+ */
+ @JsonProperty("type")
+ public String getType() {
+ return "custom-time";
+ }
+
+ /**
+ * @return POSIX strftime format string (IEEE Std 1003.1 / POSIX.1) with d3-time-format extensions (e.g., '%Y-%m-%d', '%d/%m/%Y %H:%M:%S'). See https://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html and https://d3js.org/d3-time-format
+ */
+ @JsonProperty("value")
+ public String getValue() {
+ return value;
+ }
+
+ @java.lang.Override
+ public boolean equals(Object other) {
+ if (this == other) return true;
+ return other instanceof CustomTimeFormat && equalTo((CustomTimeFormat) other);
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ private boolean equalTo(CustomTimeFormat other) {
+ return value.equals(other.value);
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ return Objects.hash(this.value);
+ }
+
+ @java.lang.Override
+ public String toString() {
+ return ObjectMappers.stringify(this);
+ }
+
+ public static ValueStage builder() {
+ return new Builder();
+ }
+
+ public interface ValueStage {
+ /**
+ * POSIX strftime format string (IEEE Std 1003.1 / POSIX.1) with d3-time-format extensions (e.g., '%Y-%m-%d', '%d/%m/%Y %H:%M:%S'). See https://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html and https://d3js.org/d3-time-format
+ */
+ _FinalStage value(@NotNull String value);
+
+ Builder from(CustomTimeFormat other);
+ }
+
+ public interface _FinalStage {
+ CustomTimeFormat build();
+
+ _FinalStage additionalProperty(String key, Object value);
+
+ _FinalStage additionalProperties(Map additionalProperties);
+ }
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public static final class Builder implements ValueStage, _FinalStage {
+ private String value;
+
+ @JsonAnySetter
+ private Map additionalProperties = new HashMap<>();
+
+ private Builder() {}
+
+ @java.lang.Override
+ public Builder from(CustomTimeFormat other) {
+ value(other.getValue());
+ return this;
+ }
+
+ /**
+ * POSIX strftime format string (IEEE Std 1003.1 / POSIX.1) with d3-time-format extensions (e.g., '%Y-%m-%d', '%d/%m/%Y %H:%M:%S'). See https://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html and https://d3js.org/d3-time-format
+ * POSIX strftime format string (IEEE Std 1003.1 / POSIX.1) with d3-time-format extensions (e.g., '%Y-%m-%d', '%d/%m/%Y %H:%M:%S'). See https://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html and https://d3js.org/d3-time-format
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ @JsonSetter("value")
+ public _FinalStage value(@NotNull String value) {
+ this.value = Objects.requireNonNull(value, "value must not be null");
+ return this;
+ }
+
+ @java.lang.Override
+ public CustomTimeFormat build() {
+ return new CustomTimeFormat(value, additionalProperties);
+ }
+
+ @java.lang.Override
+ public Builder additionalProperty(String key, Object value) {
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ @java.lang.Override
+ public Builder additionalProperties(Map additionalProperties) {
+ this.additionalProperties.putAll(additionalProperties);
+ return this;
+ }
+ }
+}
diff --git a/src/main/java/com/squareup/square/types/Dimension.java b/src/main/java/com/squareup/square/types/Dimension.java
new file mode 100644
index 00000000..a85fe8e0
--- /dev/null
+++ b/src/main/java/com/squareup/square/types/Dimension.java
@@ -0,0 +1,543 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.squareup.square.types;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSetter;
+import com.fasterxml.jackson.annotation.Nulls;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.squareup.square.core.ObjectMappers;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import org.jetbrains.annotations.NotNull;
+
+@JsonInclude(JsonInclude.Include.NON_ABSENT)
+@JsonDeserialize(builder = Dimension.Builder.class)
+public final class Dimension {
+ private final String name;
+
+ private final Optional title;
+
+ private final Optional shortTitle;
+
+ private final Optional description;
+
+ private final String type;
+
+ private final Optional aliasMember;
+
+ private final Optional> granularities;
+
+ private final Optional