public sealed class Artifact : IMessage<Artifact>, IEquatable<Artifact>, IDeepCloneable<Artifact>, IBufferMessage, IMessage
Reference documentation and code samples for the Apigee Registry v1 API class Artifact.
Artifacts of resources. Artifacts are unique (single-value) per resource
and are used to store metadata that is too large or numerous to be stored
directly on the resource. Since artifacts are stored separately from parent
resources, they should generally be used for metadata that is needed
infrequently, i.e., not for display in primary views of the resource but
perhaps displayed or downloaded upon request. The ListArtifacts method
allows artifacts to be quickly enumerated and checked for presence without
downloading their (potentially-large) contents.
Input only. The contents of the artifact.
Provided by API callers when artifacts are created or replaced.
To access the contents of an artifact, use GetArtifactContents.
A content type specifier for the artifact.
Content type specifiers are Media Types
(https://en.wikipedia.org/wiki/Media_type) with a possible "schema"
parameter that specifies a schema for the stored information.
Content types can specify compression. Currently only GZip compression is
supported (indicated with "+gzip").
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eArtifact\u003c/code\u003e class in the Apigee Registry v1 API represents metadata storage that is separate from the main resource, suitable for large or infrequently accessed information.\u003c/p\u003e\n"],["\u003cp\u003eArtifacts are unique per resource and are used to store metadata too large or numerous to be stored directly on the resource, and are retrieved using the \u003ccode\u003eGetArtifactContents\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eArtifact\u003c/code\u003e class includes properties such as \u003ccode\u003eContents\u003c/code\u003e, \u003ccode\u003eCreateTime\u003c/code\u003e, \u003ccode\u003eHash\u003c/code\u003e, \u003ccode\u003eMimeType\u003c/code\u003e, \u003ccode\u003eName\u003c/code\u003e, \u003ccode\u003eSizeBytes\u003c/code\u003e, and \u003ccode\u003eUpdateTime\u003c/code\u003e, which provide details about the artifact's data and metadata.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eArtifact\u003c/code\u003e class implements interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, allowing for various functionalities such as deep cloning and buffer message operations.\u003c/p\u003e\n"],["\u003cp\u003eThe class has two constructors, one default constructor for creating an empty \u003ccode\u003eArtifact\u003c/code\u003e and another for creating a copy from another \u003ccode\u003eArtifact\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Apigee Registry v1 API - Class Artifact (1.0.0-beta07)\n\nVersion latestkeyboard_arrow_down\n\n- [1.0.0-beta07 (latest)](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/latest/Google.Cloud.ApigeeRegistry.V1.Artifact)\n- [1.0.0-beta06](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/1.0.0-beta06/Google.Cloud.ApigeeRegistry.V1.Artifact) \n\n public sealed class Artifact : IMessage\u003cArtifact\u003e, IEquatable\u003cArtifact\u003e, IDeepCloneable\u003cArtifact\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Apigee Registry v1 API class Artifact.\n\nArtifacts of resources. Artifacts are unique (single-value) per resource\nand are used to store metadata that is too large or numerous to be stored\ndirectly on the resource. Since artifacts are stored separately from parent\nresources, they should generally be used for metadata that is needed\ninfrequently, i.e., not for display in primary views of the resource but\nperhaps displayed or downloaded upon request. The `ListArtifacts` method\nallows artifacts to be quickly enumerated and checked for presence without\ndownloading their (potentially-large) contents. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Artifact \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Artifact](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/latest/Google.Cloud.ApigeeRegistry.V1.Artifact), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Artifact](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/latest/Google.Cloud.ApigeeRegistry.V1.Artifact), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Artifact](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/latest/Google.Cloud.ApigeeRegistry.V1.Artifact), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.ApigeeRegistry.V1](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/latest/Google.Cloud.ApigeeRegistry.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.ApigeeRegistry.V1.dll\n\nConstructors\n------------\n\n### Artifact()\n\n public Artifact()\n\n### Artifact(Artifact)\n\n public Artifact(Artifact other)\n\nProperties\n----------\n\n### ArtifactName\n\n public ArtifactName ArtifactName { get; set; }\n\n[ArtifactName](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/latest/Google.Cloud.ApigeeRegistry.V1.ArtifactName)-typed view over the [Name](/dotnet/docs/reference/Google.Cloud.ApigeeRegistry.V1/latest/Google.Cloud.ApigeeRegistry.V1.Artifact#Google_Cloud_ApigeeRegistry_V1_Artifact_Name) resource name property.\n\n### Contents\n\n public ByteString Contents { get; set; }\n\nInput only. The contents of the artifact.\nProvided by API callers when artifacts are created or replaced.\nTo access the contents of an artifact, use GetArtifactContents.\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nOutput only. Creation timestamp.\n\n### Hash\n\n public string Hash { get; set; }\n\nOutput only. A SHA-256 hash of the artifact's contents. If the artifact is gzipped,\nthis is the hash of the uncompressed artifact.\n\n### MimeType\n\n public string MimeType { get; set; }\n\nA content type specifier for the artifact.\nContent type specifiers are Media Types\n(\u003chttps://en.wikipedia.org/wiki/Media_type\u003e) with a possible \"schema\"\nparameter that specifies a schema for the stored information.\nContent types can specify compression. Currently only GZip compression is\nsupported (indicated with \"+gzip\").\n\n### Name\n\n public string Name { get; set; }\n\nResource name.\n\n### SizeBytes\n\n public int SizeBytes { get; set; }\n\nOutput only. The size of the artifact in bytes. If the artifact is gzipped, this is\nthe size of the uncompressed artifact.\n\n### UpdateTime\n\n public Timestamp UpdateTime { get; set; }\n\nOutput only. Last update timestamp."]]