Service-specific metadata associated with the operation. It typically
contains progress information and common metadata such as create time.
Some services might not provide such metadata. Any method that returns a
long-running operation should document the metadata type, if any.
The server-assigned name, which is only unique within the same service that
originally returns it. If you use the default HTTP mapping, the
name should be a resource name ending with operations/{unique_id}.
The normal response of the operation in case of success. If the original
method returns no data on success, such as Delete, the response is
google.protobuf.Empty. If the original method is standard
Get/Create/Update, the response should be the resource. For other
methods, the response should have the type XxxResponse, where Xxx
is the original method name. For example, if the original method name
is TakeSnapshot(), the inferred response type is
TakeSnapshotResponse.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eOperation\u003c/code\u003e class in the \u003ccode\u003eGoogle.LongRunning\u003c/code\u003e namespace represents a long-running operation resulting from a network API call.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eOperation\u003c/code\u003e class has properties such as \u003ccode\u003eDone\u003c/code\u003e, \u003ccode\u003eError\u003c/code\u003e, \u003ccode\u003eMetadata\u003c/code\u003e, \u003ccode\u003eName\u003c/code\u003e, and \u003ccode\u003eResponse\u003c/code\u003e to provide the operations details, and their status.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of \u003ccode\u003eOperation\u003c/code\u003e is 3.3.0, with several previous versions available for reference, and implements the interfaces of IMessage, IEquatable, IDeepCloneable, and IBufferMessage.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eResultCase\u003c/code\u003e property indicates whether the operation has completed with an error (\u003ccode\u003eError\u003c/code\u003e) or a successful response (\u003ccode\u003eResponse\u003c/code\u003e).\u003c/p\u003e\n"]]],[],null,["# Google.LongRunning - Class Operation (3.3.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.3.0 (latest)](/dotnet/docs/reference/Google.LongRunning/latest/Google.LongRunning.Operation)\n- [3.2.0](/dotnet/docs/reference/Google.LongRunning/3.2.0/Google.LongRunning.Operation)\n- [3.1.0](/dotnet/docs/reference/Google.LongRunning/3.1.0/Google.LongRunning.Operation)\n- [3.0.0](/dotnet/docs/reference/Google.LongRunning/3.0.0/Google.LongRunning.Operation)\n- [2.3.0](/dotnet/docs/reference/Google.LongRunning/2.3.0/Google.LongRunning.Operation)\n- [2.2.0](/dotnet/docs/reference/Google.LongRunning/2.2.0/Google.LongRunning.Operation) \n\n public sealed class Operation : IMessage\u003cOperation\u003e, IEquatable\u003cOperation\u003e, IDeepCloneable\u003cOperation\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google.LongRunning class Operation.\n\nThis resource represents a long-running operation that is the result of a\nnetwork API call. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Operation \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Operation](/dotnet/docs/reference/Google.LongRunning/latest/Google.LongRunning.Operation), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Operation](/dotnet/docs/reference/Google.LongRunning/latest/Google.LongRunning.Operation), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Operation](/dotnet/docs/reference/Google.LongRunning/latest/Google.LongRunning.Operation), [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.LongRunning](/dotnet/docs/reference/Google.LongRunning/latest/Google.LongRunning)\n\nAssembly\n--------\n\nGoogle.LongRunning.dll\n\nConstructors\n------------\n\n### Operation()\n\n public Operation()\n\n### Operation(Operation)\n\n public Operation(Operation other)\n\nProperties\n----------\n\n### Done\n\n public bool Done { get; set; }\n\nIf the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.\n\n### Error\n\n public Status Error { get; set; }\n\nThe error result of the operation in case of failure or cancellation.\n\n### Metadata\n\n public Any Metadata { get; set; }\n\nService-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.\n\n### Name\n\n public string Name { get; set; }\n\nThe server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations/{unique_id}`.\n\n### Response\n\n public Any Response { get; set; }\n\nThe normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.\n\n### ResultCase\n\n public Operation.ResultOneofCase ResultCase { get; }"]]