Class JSONSchemaProps

  • All Implemented Interfaces:
    com.marcnuri.yakc.model.Model

    public class JSONSchemaProps
    extends java.lang.Object
    implements com.marcnuri.yakc.model.Model
    JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).
    • Constructor Detail

      • JSONSchemaProps

        public JSONSchemaProps​(JSONSchemaPropsOrBool additionalItems,
                               JSONSchemaPropsOrBool additionalProperties,
                               java.util.List<JSONSchemaProps> allOf,
                               java.util.List<JSONSchemaProps> anyOf,
                               java.lang.Object defaults,
                               java.util.Map<java.lang.String,​JSONSchemaProps> definitions,
                               java.util.Map<java.lang.String,​JSONSchemaPropsOrStringArray> dependencies,
                               java.lang.String description,
                               java.util.List<java.lang.Object> enumeration,
                               java.lang.Object example,
                               java.lang.Boolean exclusiveMaximum,
                               java.lang.Boolean exclusiveMinimum,
                               ExternalDocumentation externalDocs,
                               java.lang.String format,
                               java.lang.String id,
                               JSONSchemaPropsOrArray items,
                               java.lang.Number maxItems,
                               java.lang.Number maxLength,
                               java.lang.Number maxProperties,
                               java.lang.Number maximum,
                               java.lang.Number minItems,
                               java.lang.Number minLength,
                               java.lang.Number minProperties,
                               java.lang.Number minimum,
                               java.lang.Number multipleOf,
                               JSONSchemaProps not,
                               java.lang.Boolean nullable,
                               java.util.List<JSONSchemaProps> oneOf,
                               java.lang.String pattern,
                               java.util.Map<java.lang.String,​JSONSchemaProps> patternProperties,
                               java.util.Map<java.lang.String,​JSONSchemaProps> properties,
                               java.util.List<java.lang.String> required,
                               java.lang.String title,
                               java.lang.String type,
                               java.lang.Boolean uniqueItems,
                               java.lang.Boolean xKubernetesEmbeddedResource,
                               java.lang.Boolean xKubernetesIntOrString,
                               java.util.List<java.lang.String> xKubernetesListMapKeys,
                               java.lang.String xKubernetesListType,
                               java.lang.String xKubernetesMapType,
                               java.lang.Boolean xKubernetesPreserveUnknownFields,
                               java.util.List<ValidationRule> xKubernetesValidations)
      • JSONSchemaProps

        public JSONSchemaProps()
    • Method Detail

      • getDefaults

        public java.lang.Object getDefaults()
      • getDefinitions

        public java.util.Map<java.lang.String,​JSONSchemaProps> getDefinitions()
      • getDescription

        public java.lang.String getDescription()
      • getEnumeration

        public java.util.List<java.lang.Object> getEnumeration()
      • getExample

        public java.lang.Object getExample()
      • getExclusiveMaximum

        public java.lang.Boolean getExclusiveMaximum()
      • getExclusiveMinimum

        public java.lang.Boolean getExclusiveMinimum()
      • getFormat

        public java.lang.String getFormat()
        format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:


        - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339.

      • getId

        public java.lang.String getId()
      • getMaxItems

        public java.lang.Number getMaxItems()
      • getMaxLength

        public java.lang.Number getMaxLength()
      • getMaxProperties

        public java.lang.Number getMaxProperties()
      • getMaximum

        public java.lang.Number getMaximum()
      • getMinItems

        public java.lang.Number getMinItems()
      • getMinLength

        public java.lang.Number getMinLength()
      • getMinProperties

        public java.lang.Number getMinProperties()
      • getMinimum

        public java.lang.Number getMinimum()
      • getMultipleOf

        public java.lang.Number getMultipleOf()
      • getNullable

        public java.lang.Boolean getNullable()
      • getPattern

        public java.lang.String getPattern()
      • getPatternProperties

        public java.util.Map<java.lang.String,​JSONSchemaProps> getPatternProperties()
      • getProperties

        public java.util.Map<java.lang.String,​JSONSchemaProps> getProperties()
      • getRequired

        public java.util.List<java.lang.String> getRequired()
      • getTitle

        public java.lang.String getTitle()
      • getType

        public java.lang.String getType()
      • getUniqueItems

        public java.lang.Boolean getUniqueItems()
      • getXKubernetesEmbeddedResource

        public java.lang.Boolean getXKubernetesEmbeddedResource()
        x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).
      • getXKubernetesIntOrString

        public java.lang.Boolean getXKubernetesIntOrString()
        x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:


        1) anyOf:

        - type: integer

        - type: string

        2) allOf:

        - anyOf:

        - type: integer

        - type: string

        - ... zero or more

      • getXKubernetesListMapKeys

        public java.util.List<java.lang.String> getXKubernetesListMapKeys()
        x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.


        This tag MUST only be used on lists that have the "x-kubernetes-list-type" extension set to "map". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).


        The properties specified must either be required or have a default value, to ensure those properties are present for all list items.

      • getXKubernetesListType

        public java.lang.String getXKubernetesListType()
        x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:


        1) `atomic`: the list is treated as a single entity, like a scalar.

        Atomic lists will be entirely replaced when updated. This extension

        may be used on any type of list (struct, scalar, ...).

        2) `set`:

        Sets are lists that must not have multiple items with the same value. Each

        value must be a scalar, an object with x-kubernetes-map-type `atomic` or an

        array with x-kubernetes-list-type `atomic`.

        3) `map`:

        These lists are like maps in that their elements have a non-index key

        used to identify them. Order is preserved upon merge. The map tag

        must only be used on a list with elements of type object.

        Defaults to atomic for arrays.

      • getXKubernetesMapType

        public java.lang.String getXKubernetesMapType()
        x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:


        1) `granular`:

        These maps are actual maps (key-value pairs) and each fields are independent

        from each other (they can each be manipulated by separate actors). This is

        the default behaviour for all maps.

        2) `atomic`: the list is treated as a single entity, like a scalar.

        Atomic maps will be entirely replaced when updated.

      • getXKubernetesPreserveUnknownFields

        public java.lang.Boolean getXKubernetesPreserveUnknownFields()
        x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.
      • getXKubernetesValidations

        public java.util.List<ValidationRule> getXKubernetesValidations()
        x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.
      • setAdditionalProperties

        public void setAdditionalProperties​(JSONSchemaPropsOrBool additionalProperties)
      • setAllOf

        public void setAllOf​(java.util.List<JSONSchemaProps> allOf)
      • setAnyOf

        public void setAnyOf​(java.util.List<JSONSchemaProps> anyOf)
      • setDefaults

        public void setDefaults​(java.lang.Object defaults)
      • setDefinitions

        public void setDefinitions​(java.util.Map<java.lang.String,​JSONSchemaProps> definitions)
      • setDescription

        public void setDescription​(java.lang.String description)
      • setEnumeration

        public void setEnumeration​(java.util.List<java.lang.Object> enumeration)
      • setExample

        public void setExample​(java.lang.Object example)
      • setExclusiveMaximum

        public void setExclusiveMaximum​(java.lang.Boolean exclusiveMaximum)
      • setExclusiveMinimum

        public void setExclusiveMinimum​(java.lang.Boolean exclusiveMinimum)
      • setFormat

        public void setFormat​(java.lang.String format)
        format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:


        - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339.

      • setId

        public void setId​(java.lang.String id)
      • setMaxItems

        public void setMaxItems​(java.lang.Number maxItems)
      • setMaxLength

        public void setMaxLength​(java.lang.Number maxLength)
      • setMaxProperties

        public void setMaxProperties​(java.lang.Number maxProperties)
      • setMaximum

        public void setMaximum​(java.lang.Number maximum)
      • setMinItems

        public void setMinItems​(java.lang.Number minItems)
      • setMinLength

        public void setMinLength​(java.lang.Number minLength)
      • setMinProperties

        public void setMinProperties​(java.lang.Number minProperties)
      • setMinimum

        public void setMinimum​(java.lang.Number minimum)
      • setMultipleOf

        public void setMultipleOf​(java.lang.Number multipleOf)
      • setNullable

        public void setNullable​(java.lang.Boolean nullable)
      • setOneOf

        public void setOneOf​(java.util.List<JSONSchemaProps> oneOf)
      • setPattern

        public void setPattern​(java.lang.String pattern)
      • setPatternProperties

        public void setPatternProperties​(java.util.Map<java.lang.String,​JSONSchemaProps> patternProperties)
      • setProperties

        public void setProperties​(java.util.Map<java.lang.String,​JSONSchemaProps> properties)
      • setRequired

        public void setRequired​(java.util.List<java.lang.String> required)
      • setTitle

        public void setTitle​(java.lang.String title)
      • setType

        public void setType​(java.lang.String type)
      • setUniqueItems

        public void setUniqueItems​(java.lang.Boolean uniqueItems)
      • setXKubernetesEmbeddedResource

        public void setXKubernetesEmbeddedResource​(java.lang.Boolean xKubernetesEmbeddedResource)
        x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).
      • setXKubernetesIntOrString

        public void setXKubernetesIntOrString​(java.lang.Boolean xKubernetesIntOrString)
        x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:


        1) anyOf:

        - type: integer

        - type: string

        2) allOf:

        - anyOf:

        - type: integer

        - type: string

        - ... zero or more

      • setXKubernetesListMapKeys

        public void setXKubernetesListMapKeys​(java.util.List<java.lang.String> xKubernetesListMapKeys)
        x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.


        This tag MUST only be used on lists that have the "x-kubernetes-list-type" extension set to "map". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).


        The properties specified must either be required or have a default value, to ensure those properties are present for all list items.

      • setXKubernetesListType

        public void setXKubernetesListType​(java.lang.String xKubernetesListType)
        x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:


        1) `atomic`: the list is treated as a single entity, like a scalar.

        Atomic lists will be entirely replaced when updated. This extension

        may be used on any type of list (struct, scalar, ...).

        2) `set`:

        Sets are lists that must not have multiple items with the same value. Each

        value must be a scalar, an object with x-kubernetes-map-type `atomic` or an

        array with x-kubernetes-list-type `atomic`.

        3) `map`:

        These lists are like maps in that their elements have a non-index key

        used to identify them. Order is preserved upon merge. The map tag

        must only be used on a list with elements of type object.

        Defaults to atomic for arrays.

      • setXKubernetesMapType

        public void setXKubernetesMapType​(java.lang.String xKubernetesMapType)
        x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:


        1) `granular`:

        These maps are actual maps (key-value pairs) and each fields are independent

        from each other (they can each be manipulated by separate actors). This is

        the default behaviour for all maps.

        2) `atomic`: the list is treated as a single entity, like a scalar.

        Atomic maps will be entirely replaced when updated.

      • setXKubernetesPreserveUnknownFields

        public void setXKubernetesPreserveUnknownFields​(java.lang.Boolean xKubernetesPreserveUnknownFields)
        x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.
      • setXKubernetesValidations

        public void setXKubernetesValidations​(java.util.List<ValidationRule> xKubernetesValidations)
        x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • canEqual

        protected boolean canEqual​(java.lang.Object other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object