@Value.Immutable @ConjureImmutablesStyle public interface DateTimeType extends ConjureType { @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitDateTime(this); } // marker interface static DateTimeType of() { return ImmutableDateTimeType.builder().build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface ForeignReferenceType extends ReferenceType { Namespace namespace(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitForeignReference(this); } static ForeignReferenceType of(Namespace namespace, TypeName type) { return ImmutableForeignReferenceType.builder().namespace(namespace).type(type).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface AnyType extends ConjureType { @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitAny(this); } // marker interface static AnyType of() { return ImmutableAnyType.builder().build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface BinaryType extends ConjureType { // marker interface @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitBinary(this); } static BinaryType of() { return ImmutableBinaryType.builder().build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface SetType extends ConjureType { @JsonProperty("item-type") ConjureType itemType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitSet(this); } static SetType of(ConjureType itemType) { return ImmutableSetType.builder().itemType(itemType).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface OptionalType extends ConjureType { @JsonProperty("item-type") ConjureType itemType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitOptional(this); } static OptionalType of(ConjureType itemType) { return ImmutableOptionalType.builder().itemType(itemType).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface ListType extends ConjureType { @JsonProperty("item-type") ConjureType itemType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitList(this); } static ListType of(ConjureType itemType) { return ImmutableListType.builder().itemType(itemType).build(); } }
@Value.Immutable @ConjureImmutablesStyle public interface MapType extends ConjureType { @JsonProperty("key-type") ConjureType keyType(); @JsonProperty("value-type") ConjureType valueType(); @Override default <T> T visit(ConjureTypeVisitor<T> visitor) { return visitor.visitMap(this); } static MapType of(ConjureType keyType, ConjureType valueType) { return ImmutableMapType.builder().keyType(keyType).valueType(valueType).build(); } }
@JsonDeserialize(as = ImmutableExternalImportDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface ExternalImportDefinition { String java(); static ExternalImportDefinition of(String external) { return ImmutableExternalImportDefinition.builder().java(external).build(); } }
@JsonDeserialize(as = ImmutableConjureSourceFile.class) @Value.Immutable @ConjureImmutablesStyle public interface ConjureSourceFile { @Value.Default default TypesDefinition types() { return TypesDefinition.builder().build(); } Map<TypeName, ServiceDefinition> services(); static Builder builder() { return new Builder(); } class Builder extends ImmutableConjureSourceFile.Builder {} }
@JsonDeserialize(as = ImmutableNamedTypesDefinition.class) @JsonSerialize(as = ImmutableNamedTypesDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface NamedTypesDefinition { @JsonProperty("default-package") Optional<ConjurePackage> defaultConjurePackage(); Map<TypeName, BaseObjectTypeDefinition> objects(); Map<TypeName, ErrorTypeDefinition> errors(); static Builder builder() { return new Builder(); } class Builder extends ImmutableNamedTypesDefinition.Builder {} }
@JsonDeserialize(as = ImmutableEndpointDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface EndpointDefinition { RequestLineDefinition http(); Optional<AuthDefinition> auth(); Map<ParameterName, ArgumentDefinition> args(); Set<ConjureType> markers(); Optional<ConjureType> returns(); Optional<String> docs(); Optional<String> deprecated(); static Builder builder() { return new Builder(); } class Builder extends ImmutableEndpointDefinition.Builder {} }
@JsonDeserialize(as = ImmutableAliasTypeDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface AliasTypeDefinition extends BaseObjectTypeDefinition { ConjureType alias(); @Override default <T> T visit(TypeDefinitionVisitor<T> visitor) { return visitor.visit(this); } static Builder builder() { return new Builder(); } static AliasTypeDefinition fromJson(JsonParser parser, TreeNode json) throws IOException { return parser.getCodec().treeToValue(json, AliasTypeDefinition.class); } class Builder extends ImmutableAliasTypeDefinition.Builder {} }
@JsonDeserialize(as = ImmutableExternalTypeDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface ExternalTypeDefinition { ExternalImportDefinition external(); @JsonProperty("base-type") @Value.Default default PrimitiveType baseType() { return PrimitiveType.ANY; } static ExternalTypeDefinition javaType(String external, PrimitiveType baseType) { return ImmutableExternalTypeDefinition.builder() .external(ExternalImportDefinition.of(external)) .baseType(baseType) .build(); } }
@JsonDeserialize(as = ImmutableEnumTypeDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface EnumTypeDefinition extends BaseObjectTypeDefinition { @JsonSetter(nulls = Nulls.FAIL, contentNulls = Nulls.FAIL) List<EnumValueDefinition> values(); @Override default <T> T visit(TypeDefinitionVisitor<T> visitor) { return visitor.visit(this); } static EnumTypeDefinition fromJson(JsonParser parser, TreeNode json) throws IOException { return parser.getCodec().treeToValue(json, EnumTypeDefinition.class); } static Builder builder() { return new Builder(); } class Builder extends ImmutableEnumTypeDefinition.Builder {} }
@JsonDeserialize(as = ImmutableObjectTypeDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface ObjectTypeDefinition extends BaseObjectTypeDefinition { @JsonSetter(nulls = Nulls.FAIL, contentNulls = Nulls.FAIL) Map<FieldName, FieldDefinition> fields(); @Override default <T> T visit(TypeDefinitionVisitor<T> visitor) { return visitor.visit(this); } static ObjectTypeDefinition fromJson(JsonParser parser, TreeNode json) throws IOException { return parser.getCodec().treeToValue(json, ImmutableObjectTypeDefinition.class); } static Builder builder() { return new Builder(); } class Builder extends ImmutableObjectTypeDefinition.Builder {} }
@JsonDeserialize(as = ImmutableUnionTypeDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface UnionTypeDefinition extends BaseObjectTypeDefinition { @JsonSetter(nulls = Nulls.FAIL, contentNulls = Nulls.FAIL) Map<FieldName, FieldDefinition> union(); @Override default <T> T visit(TypeDefinitionVisitor<T> visitor) { return visitor.visit(this); } static UnionTypeDefinition fromJson(JsonParser parser, TreeNode json) throws IOException { return parser.getCodec().treeToValue(json, UnionTypeDefinition.class); } static Builder builder() { return new Builder(); } class Builder extends ImmutableUnionTypeDefinition.Builder {} }
@JsonDeserialize(as = ImmutableTestCaseDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface TestCaseDefinition { @JsonProperty("test-case-name") String testCaseName(); @JsonProperty("negative") Optional<SortedMap<String, NegativeCaseDefinition>> negative(); @JsonProperty("positive") Optional<SortedMap<String, PositiveCaseDefinition>> positive(); }
@JsonDeserialize(as = ImmutableNegativeCaseDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface NegativeCaseDefinition { @JsonProperty("expected-error") String expectedError(); @JsonProperty("conjure") Object conjure(); }
@JsonDeserialize(as = ImmutablePositiveCaseDefinition.class) @Value.Immutable @ConjureImmutablesStyle public interface PositiveCaseDefinition { @JsonProperty("conjure") Object conjure(); }