Class Artifact
java.lang.Object
security.whisper.javastix.coo.objects.Artifact
- All Implemented Interfaces:
Serializable,BundleableObject,Stix,StixCustomProperties,CyberObservableObject,CyberObservableObjectCommonProperties,ArtifactCoo,GenericValidation,SdoDefaultValidator
@ParametersAreNonnullByDefault
@Generated("org.immutables.processor.ProxyProcessor")
@Immutable
@CheckReturnValue
public final class Artifact
extends Object
implements ArtifactCoo
Immutable implementation of
ArtifactCoo.
Use the builder to create immutable instances:
Artifact.builder().
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from interface security.whisper.javastix.validation.SdoDefaultValidator
VALIDATOR -
Method Summary
Modifier and TypeMethodDescriptionstatic Artifact.Builderbuilder()Creates a builder forArtifact.static ArtifactcopyOf(ArtifactCoo instance) Creates an immutable copy of aArtifactCoovalue.booleanThis instance is equal to all instances ofArtifactthat have equal attribute values.Custom Properties for STIX Objects.Indicates whether the data contained in the SCO has been defanged.com.google.common.collect.ImmutableSet<CyberObservableExtension> Multiple extensions can be added, but only 1 instance of a specific extension can be added.com.google.common.collect.ImmutableSet<GranularMarkingDm> hashesbooleangetId()Deterministically generates the ID for this artifact based on its payload_bin, url, or hashes.com.google.common.collect.ImmutableSet<MarkingDefinitionDm> Used for generation of Map Keys byManually set this value if you want to control key names.invalid reference
ObservedDataSdo#getObjects()getType()getUrl()inthashCode()Computes a hash code from attributes:mimeType,payloadBin,url,hashes,id,type,extensions,observableObjectKey,defanged,customProperties,objectMarkingRefs,granularMarkings,hydrated,toJsonString.toString()Prints the immutable valueArtifactwith attribute values.final ArtifactwithCustomProperties(Map<String, ? extends Object> entries) Copy the current immutable object by replacing thecustomPropertiesmap with the specified map.final ArtifactwithDefanged(boolean value) Copy the current immutable object by setting a present value for the optionaldefangedattribute.final ArtifactwithDefanged(Optional<Boolean> optional) Copy the current immutable object by setting an optional value for thedefangedattribute.final ArtifactwithExtensions(Iterable<? extends CyberObservableExtension> elements) Copy the current immutable object with elements that replace the content ofextensions.final ArtifactwithExtensions(CyberObservableExtension... elements) Copy the current immutable object with elements that replace the content ofextensions.final ArtifactwithGranularMarkings(Iterable<? extends GranularMarkingDm> elements) Copy the current immutable object with elements that replace the content ofgranularMarkings.final ArtifactwithGranularMarkings(GranularMarkingDm... elements) Copy the current immutable object with elements that replace the content ofgranularMarkings.final ArtifactwithHashes(Map<String, ? extends String> entries) Copy the current immutable object by replacing thehashesmap with the specified map.final ArtifactwithHydrated(boolean value) Copy the current immutable object by setting a value for thehydratedattribute.final ArtifactwithMimeType(String value) Copy the current immutable object by setting a present value for the optionalmimeTypeattribute.final ArtifactwithMimeType(Optional<String> optional) Copy the current immutable object by setting an optional value for themimeTypeattribute.final ArtifactwithObjectMarkingRefs(Iterable<? extends MarkingDefinitionDm> elements) Copy the current immutable object with elements that replace the content ofobjectMarkingRefs.final ArtifactwithObjectMarkingRefs(MarkingDefinitionDm... elements) Copy the current immutable object with elements that replace the content ofobjectMarkingRefs.final ArtifactwithObservableObjectKey(String value) Copy the current immutable object by setting a value for theobservableObjectKeyattribute.final ArtifactwithPayloadBin(String value) Copy the current immutable object by setting a present value for the optionalpayloadBinattribute.final ArtifactwithPayloadBin(Optional<String> optional) Copy the current immutable object by setting an optional value for thepayloadBinattribute.final ArtifactwithToJsonString(String value) Copy the current immutable object by setting a value for thetoJsonStringattribute.final ArtifactCopy the current immutable object by setting a value for thetypeattribute.final ArtifactCopy the current immutable object by setting a present value for the optionalurlattribute.final ArtifactCopy the current immutable object by setting an optional value for theurlattribute.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface security.whisper.javastix.validation.GenericValidation
validateEntityMethods inherited from interface security.whisper.javastix.validation.SdoDefaultValidator
validate, validateOnlyId
-
Method Details
-
getMimeType
@JsonPropertyDescription("The value of this property MUST be a valid MIME type as specified in the IANA Media Types registry.") public Optional<String> getMimeType()- Specified by:
getMimeTypein interfaceArtifactCoo- Returns:
- The value of the
mimeTypeattribute
-
getPayloadBin
@JsonPropertyDescription("Specifies the binary data contained in the artifact as a base64-encoded string.") public Optional<String> getPayloadBin()- Specified by:
getPayloadBinin interfaceArtifactCoo- Returns:
- The value of the
payloadBinattribute
-
getUrl
@JsonPropertyDescription("The value of this property MUST be a valid URL that resolves to the unencoded content.") public Optional<String> getUrl()- Specified by:
getUrlin interfaceArtifactCoo- Returns:
- The value of the
urlattribute
-
getHashes
@JsonPropertyDescription("Specifies a dictionary of hashes for the contents of the url or the payload_bin.") public com.google.common.collect.ImmutableMap<String,String> getHashes()hashesThis MUST be provided when the url property is present. Optional if payload_bin is present.
- Specified by:
getHashesin interfaceArtifactCoo
-
getId
Deterministically generates the ID for this artifact based on its payload_bin, url, or hashes.- Specified by:
getIdin interfaceArtifactCoo- Specified by:
getIdin interfaceBundleableObject- Specified by:
getIdin interfaceCyberObservableObjectCommonProperties
-
getType
- Specified by:
getTypein interfaceBundleableObject- Specified by:
getTypein interfaceCyberObservableObjectCommonProperties- Returns:
- The value of the
typeattribute
-
getExtensions
@JsonPropertyDescription("Specifies any extensions of the object, as a dictionary.") public com.google.common.collect.ImmutableSet<CyberObservableExtension> getExtensions()Multiple extensions can be added, but only 1 instance of a specific extension can be added.- Specified by:
getExtensionsin interfaceCyberObservableObjectCommonProperties
-
getObservableObjectKey
Used for generation of Map Keys byManually set this value if you want to control key names. Otherwise UUIDs will be used.invalid reference
ObservedDataSdo#getObjects()- Specified by:
getObservableObjectKeyin interfaceCyberObservableObjectCommonProperties
-
getDefanged
@JsonPropertyDescription("Indicates whether the data contained in the SCO has been defanged.") public Optional<Boolean> getDefanged()Indicates whether the data contained in the SCO has been defanged. Defanging refers to the process of modifying data to make it safe to handle (e.g., changing an IP address from 192.168.1.1 to 192[.]168[.]1[.]1).- Specified by:
getDefangedin interfaceCyberObservableObjectCommonProperties
-
getCustomProperties
Custom Properties for STIX Objects. Any object that supports custom properties will have a validation of the custom property prefix (typically "x_"). If the additional property in the JSON does not meet the StartsWith condition, then the JSON will be rejected.- Specified by:
getCustomPropertiesin interfaceStixCustomProperties- Returns:
- Map of custom properties
Map<String, Object>
-
getObjectMarkingRefs
- Specified by:
getObjectMarkingRefsin interfaceBundleableObject- Returns:
- The value of the
objectMarkingRefsattribute
-
getGranularMarkings
- Specified by:
getGranularMarkingsin interfaceBundleableObject- Returns:
- The value of the
granularMarkingsattribute
-
getHydrated
public boolean getHydrated()- Specified by:
getHydratedin interfaceBundleableObject- Returns:
- The value of the
hydratedattribute
-
toJsonString
- Specified by:
toJsonStringin interfaceBundleableObject- Returns:
- The value of the
toJsonStringattribute
-
withMimeType
Copy the current immutable object by setting a present value for the optionalmimeTypeattribute.- Parameters:
value- The value for mimeType- Returns:
- A modified copy of
thisobject
-
withMimeType
Copy the current immutable object by setting an optional value for themimeTypeattribute. An equality check is used on inner nullable value to prevent copying of the same value by returningthis.- Parameters:
optional- A value for mimeType- Returns:
- A modified copy of
thisobject
-
withPayloadBin
Copy the current immutable object by setting a present value for the optionalpayloadBinattribute.- Parameters:
value- The value for payloadBin- Returns:
- A modified copy of
thisobject
-
withPayloadBin
Copy the current immutable object by setting an optional value for thepayloadBinattribute. An equality check is used on inner nullable value to prevent copying of the same value by returningthis.- Parameters:
optional- A value for payloadBin- Returns:
- A modified copy of
thisobject
-
withUrl
Copy the current immutable object by setting a present value for the optionalurlattribute.- Parameters:
value- The value for url- Returns:
- A modified copy of
thisobject
-
withUrl
Copy the current immutable object by setting an optional value for theurlattribute. An equality check is used on inner nullable value to prevent copying of the same value by returningthis.- Parameters:
optional- A value for url- Returns:
- A modified copy of
thisobject
-
withHashes
Copy the current immutable object by replacing thehashesmap with the specified map. Nulls are not permitted as keys or values. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
entries- The entries to be added to the hashes map- Returns:
- A modified copy of
thisobject
-
withType
Copy the current immutable object by setting a value for thetypeattribute. An equals check used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for type (can benull)- Returns:
- A modified copy of the
thisobject
-
withExtensions
Copy the current immutable object with elements that replace the content ofextensions.- Parameters:
elements- The elements to set- Returns:
- A modified copy of
thisobject
-
withExtensions
Copy the current immutable object with elements that replace the content ofextensions. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
elements- An iterable of extensions elements to set- Returns:
- A modified copy of
thisobject
-
withObservableObjectKey
Copy the current immutable object by setting a value for theobservableObjectKeyattribute. An equals check used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for observableObjectKey- Returns:
- A modified copy of the
thisobject
-
withDefanged
Copy the current immutable object by setting a present value for the optionaldefangedattribute.- Parameters:
value- The value for defanged- Returns:
- A modified copy of
thisobject
-
withDefanged
Copy the current immutable object by setting an optional value for thedefangedattribute. An equality check is used on inner nullable value to prevent copying of the same value by returningthis.- Parameters:
optional- A value for defanged- Returns:
- A modified copy of
thisobject
-
withCustomProperties
Copy the current immutable object by replacing thecustomPropertiesmap with the specified map. Nulls are not permitted as keys or values. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
entries- The entries to be added to the customProperties map- Returns:
- A modified copy of
thisobject
-
withObjectMarkingRefs
Copy the current immutable object with elements that replace the content ofobjectMarkingRefs.- Parameters:
elements- The elements to set- Returns:
- A modified copy of
thisobject
-
withObjectMarkingRefs
Copy the current immutable object with elements that replace the content ofobjectMarkingRefs. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
elements- An iterable of objectMarkingRefs elements to set- Returns:
- A modified copy of
thisobject
-
withGranularMarkings
Copy the current immutable object with elements that replace the content ofgranularMarkings.- Parameters:
elements- The elements to set- Returns:
- A modified copy of
thisobject
-
withGranularMarkings
Copy the current immutable object with elements that replace the content ofgranularMarkings. A shallow reference equality check is used to prevent copying of the same value by returningthis.- Parameters:
elements- An iterable of granularMarkings elements to set- Returns:
- A modified copy of
thisobject
-
withHydrated
Copy the current immutable object by setting a value for thehydratedattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for hydrated- Returns:
- A modified copy of the
thisobject
-
withToJsonString
Copy the current immutable object by setting a value for thetoJsonStringattribute. An equals check used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for toJsonString (can benull)- Returns:
- A modified copy of the
thisobject
-
equals
This instance is equal to all instances ofArtifactthat have equal attribute values. -
hashCode
public int hashCode()Computes a hash code from attributes:mimeType,payloadBin,url,hashes,id,type,extensions,observableObjectKey,defanged,customProperties,objectMarkingRefs,granularMarkings,hydrated,toJsonString. -
toString
Prints the immutable valueArtifactwith attribute values. -
copyOf
Creates an immutable copy of aArtifactCoovalue. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.- Parameters:
instance- The instance to copy- Returns:
- A copied immutable Artifact instance
-
builder
Creates a builder forArtifact.- Returns:
- A new Artifact builder
-