File Search Stores

ফাইল সার্চ এপিআই গুগলের পরিকাঠামো ব্যবহার করে রিট্রিভাল অগমেন্টেড জেনারেশন (RAG) সিস্টেম তৈরির জন্য একটি হোস্টেড প্রশ্নোত্তর পরিষেবা প্রদান করে।

REST রিসোর্স: ফাইলসার্চস্টোরস

রিসোর্স: ফাইলসার্চস্টোর

FileSearchStore হলো Document একটি সংগ্রহ।

ক্ষেত্র
name string

শুধুমাত্র আউটপুট। অপরিবর্তনীয়। আইডেন্টিফায়ার। FileSearchStore রিসোর্সের নাম। এটি একটি আইডি (নামের শুরুতে "fileSearchStores/" উপসর্গটি বাদে) যা ৪০টি পর্যন্ত ছোট হাতের অক্ষর, সংখ্যা বা ড্যাশ (-) দ্বারা গঠিত হতে পারে। এটি শুধুমাত্র আউটপুট হিসেবে ব্যবহৃত হয়। এই অনন্য নামটি displayName এর সাথে একটি ১২ অক্ষরের র‍্যান্ডম সাফিক্স যোগ করে তৈরি করা হবে। উদাহরণ: fileSearchStores/my-awesome-file-search-store-123a456b789c যদি displayName প্রদান করা না হয়, তবে নামটি র‍্যান্ডমভাবে তৈরি করা হবে।

displayName string

ঐচ্ছিক। FileSearchStore এর জন্য মানুষের পাঠযোগ্য প্রদর্শিত নাম। স্পেস সহ প্রদর্শিত নামটি অবশ্যই ৫১২ অক্ষরের বেশি হবে না। উদাহরণ: "Docs on Semantic Retriever"

createTime string ( Timestamp format)

শুধুমাত্র আউটপুট। FileSearchStore কখন তৈরি করা হয়েছিল তার টাইমস্ট্যাম্প।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

updateTime string ( Timestamp format)

শুধুমাত্র আউটপুট। FileSearchStore শেষবার কখন আপডেট করা হয়েছিল তার টাইমস্ট্যাম্প।

RFC 3339 ব্যবহার করা হয়, যেখানে তৈরি হওয়া আউটপুট সর্বদা Z-নরম্যালাইজড হবে এবং এতে ০, ৩, ৬ বা ৯টি ভগ্নাংশীয় অঙ্ক ব্যবহৃত হবে। "Z" ছাড়াও অন্যান্য অফসেটও গ্রহণ করা হয়। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

activeDocumentsCount string ( int64 format)

শুধুমাত্র আউটপুট। FileSearchStore থাকা সক্রিয় এবং পুনরুদ্ধারের জন্য প্রস্তুত ডকুমেন্টের সংখ্যা।

pendingDocumentsCount string ( int64 format)

শুধুমাত্র আউটপুট। FileSearchStore এ থাকা যে ডকুমেন্টগুলো প্রসেস করা হচ্ছে, তার সংখ্যা।

failedDocumentsCount string ( int64 format)

শুধুমাত্র আউটপুট। FileSearchStore এ থাকা সেইসব ডকুমেন্টের সংখ্যা যেগুলোর প্রসেসিং ব্যর্থ হয়েছে।

sizeBytes string ( int64 format)

শুধুমাত্র আউটপুট। FileSearchStore এ অন্তর্ভুক্ত করা কাঁচা বাইটের আকার। এটি FileSearchStore এ থাকা সমস্ত ডকুমেন্টের মোট আকার।

embeddingModel string

ঐচ্ছিক। FileSearchStore এর জন্য ব্যবহৃত এমবেডিং মডেল। মডেলটির রিসোর্স নাম। এটি ব্যবহৃত মডেলের জন্য একটি আইডি হিসেবে কাজ করে। ফরম্যাট: models/{model} । নির্দিষ্ট না করা হলে, ডিফল্ট এমবেডিং মডেল ব্যবহৃত হবে।

JSON উপস্থাপনা
{
  "name": string,
  "displayName": string,
  "createTime": string,
  "updateTime": string,
  "activeDocumentsCount": string,
  "pendingDocumentsCount": string,
  "failedDocumentsCount": string,
  "sizeBytes": string,
  "embeddingModel": string
}

পদ্ধতি: fileSearchStores.create

একটি খালি FileSearchStore তৈরি করে।

এন্ডপয়েন্ট

পোস্ট https: / /generativelanguage.googleapis.com /v1beta /fileSearchStores

অনুরোধকারী শরীর

অনুরোধের বডিতে FileSearchStore এর একটি ইনস্ট্যান্স থাকে।

ক্ষেত্র
displayName string

ঐচ্ছিক। FileSearchStore এর জন্য মানুষের পাঠযোগ্য প্রদর্শিত নাম। স্পেস সহ প্রদর্শিত নামটি অবশ্যই ৫১২ অক্ষরের বেশি হবে না। উদাহরণ: "Docs on Semantic Retriever"

embeddingModel string

ঐচ্ছিক। FileSearchStore এর জন্য ব্যবহৃত এমবেডিং মডেল। মডেলটির রিসোর্স নাম। এটি ব্যবহৃত মডেলের জন্য একটি আইডি হিসেবে কাজ করে। ফরম্যাট: models/{model} । নির্দিষ্ট না করা হলে, ডিফল্ট এমবেডিং মডেল ব্যবহৃত হবে।

প্রতিক্রিয়া সংস্থা

সফল হলে, রেসপন্স বডিতে FileSearchStore এর একটি নতুন তৈরি হওয়া ইনস্ট্যান্স থাকে।

পদ্ধতি: fileSearchStores.delete

একটি FileSearchStore মুছে ফেলে।

এন্ডপয়েন্ট

https: / /generativelanguage.googleapis.com /v1beta /{name=fileSearchStores /*} মুছে ফেলুন

পথের পরামিতি

name string

আবশ্যক। FileSearchStore এর রিসোর্স নামটি। উদাহরণ: fileSearchStores/my-file-search-store-123 এটির গঠন fileSearchStores/{filesearchstore}

কোয়েরি প্যারামিটার

force boolean

ঐচ্ছিক। যদি এটি 'true' সেট করা হয়, তাহলে এই FileSearchStore সাথে সম্পর্কিত যেকোনো Document এবং অবজেক্টও মুছে ফেলা হবে।

যদি false (ডিফল্ট) হয়, তাহলে FileSearchStore কোনো Document থাকলে একটি FAILED_PRECONDITION এরর রিটার্ন করা হবে।

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

প্রতিক্রিয়া সংস্থা

সফল হলে, রেসপন্স বডিটি একটি খালি JSON অবজেক্ট হয়।

পদ্ধতি: fileSearchStores.get

একটি নির্দিষ্ট FileSearchStore সম্পর্কে তথ্য সংগ্রহ করে।

এন্ডপয়েন্ট

get https: / /generativelanguage.googleapis.com /v1beta /{name=fileSearchStores /*}

পথের পরামিতি

name string

আবশ্যক। FileSearchStore -এর নাম। উদাহরণ: fileSearchStores/my-file-search-store-123 এর গঠনটি হলো fileSearchStores/{filesearchstore}

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

প্রতিক্রিয়া সংস্থা

সফল হলে, রেসপন্স বডিতে FileSearchStore এর একটি ইনস্ট্যান্স থাকে।

পদ্ধতি: fileSearchStores.list

ব্যবহারকারীর মালিকানাধীন সমস্ত FileSearchStores তালিকা দেখায়।

এন্ডপয়েন্ট

https: / /generativelanguage.googleapis.com /v1beta /fileSearchStores পান

কোয়েরি প্যারামিটার

pageSize integer

ঐচ্ছিক। প্রতি পৃষ্ঠায় ফেরত দেওয়া FileSearchStores এর সর্বোচ্চ সংখ্যা। পরিষেবাটি এর চেয়ে কম FileSearchStores ফেরত দিতে পারে।

অনির্দিষ্ট থাকলে, সর্বাধিক ১০টি FileSearchStores ফেরত দেওয়া হবে। প্রতি পৃষ্ঠায় সর্বোচ্চ আকারের সীমা হলো ২০টি FileSearchStores

pageToken string

ঐচ্ছিক। একটি পেজ টোকেন, যা পূর্ববর্তী fileSearchStores.list কল থেকে প্রাপ্ত।

পরবর্তী পৃষ্ঠাটি পাওয়ার জন্য, রেসপন্সে প্রাপ্ত nextPageToken টি পরবর্তী রিকোয়েস্টের আর্গুমেন্ট হিসেবে প্রদান করুন।

পেজিনেশন করার সময়, fileSearchStores.list এ প্রদত্ত অন্য সকল প্যারামিটার অবশ্যই সেই কলের সাথে মিলতে হবে যা পেজ টোকেনটি প্রদান করেছে।

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

প্রতিক্রিয়া সংস্থা

fileSearchStores.list থেকে প্রাপ্ত প্রতিক্রিয়া, যাতে FileSearchStores গুলোর একটি পেজিনেটেড তালিকা রয়েছে। ফলাফলগুলো fileSearchStore.create_time অনুসারে আরোহী ক্রমে সাজানো হয়েছে।

সফল হলে, প্রতিক্রিয়া অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:

ক্ষেত্র
fileSearchStores[] object ( FileSearchStore )

ফেরত আসা rag_store-গুলো।

nextPageToken string

একটি টোকেন, যা পরবর্তী পৃষ্ঠা আনার জন্য pageToken হিসেবে পাঠানো যেতে পারে। এই ক্ষেত্রটি পূরণ না করা হলে, আর কোনো পৃষ্ঠা থাকবে না।

JSON উপস্থাপনা
{
  "fileSearchStores": [
    {
      object (FileSearchStore)
    }
  ],
  "nextPageToken": string
}

পদ্ধতি: fileSearchStores.importFile

ফাইল সার্ভিস থেকে FileSearchStore এ একটি File ইম্পোর্ট করে।

এন্ডপয়েন্ট

পোস্ট https: / /generativelanguage.googleapis.com /v1beta /{fileSearchStoreName=fileSearchStores /*}:importFile

পথের পরামিতি

fileSearchStoreName string

আবশ্যক। অপরিবর্তনীয়। যে FileSearchStore এ ফাইলটি ইম্পোর্ট করা হবে তার নাম। উদাহরণ: fileSearchStores/my-file-search-store-123 এটির গঠন fileSearchStores/{filesearchstore} এর মতো।

অনুরোধকারী শরীর

অনুরোধের মূল অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:

ক্ষেত্র
fileName string

আবশ্যক। যে File ইম্পোর্ট করতে চান তার নাম। উদাহরণ: files/abc-123

customMetadata[] object ( CustomMetadata )

ফাইলটির সাথে কাস্টম মেটাডেটা যুক্ত করা হবে।

chunkingConfig object ( ChunkingConfig )

ঐচ্ছিক। ফাইলটিকে কীভাবে খণ্ডে খণ্ডে ভাগ করতে হবে, তা সার্ভিসকে জানানোর জন্য কনফিগারেশন। এটি প্রদান করা না হলে, সার্ভিসটি ডিফল্ট প্যারামিটার ব্যবহার করবে।

প্রতিক্রিয়া সংস্থা

সফল হলে, রেসপন্স বডিতে Operation এর একটি ইনস্ট্যান্স থাকে।

REST রিসোর্স: fileSearchStores.operations

সম্পদ: অপারেশন

এই রিসোর্সটি একটি দীর্ঘস্থায়ী অপারেশনকে নির্দেশ করে, যা একটি নেটওয়ার্ক এপিআই কলের ফলাফল।

ক্ষেত্র
name string

সার্ভার-নির্ধারিত নামটি শুধুমাত্র সেই সার্ভিসের মধ্যেই অনন্য, যা এটিকে প্রথম ফেরত দেয়। আপনি যদি ডিফল্ট HTTP ম্যাপিং ব্যবহার করেন, তাহলে name এমন একটি রিসোর্স নেম হওয়া উচিত যার শেষে operations/{unique_id} থাকবে।

metadata object

অপারেশনটির সাথে সম্পর্কিত পরিষেবা-নির্দিষ্ট মেটাডেটা। এতে সাধারণত অগ্রগতির তথ্য এবং তৈরির সময়ের মতো সাধারণ মেটাডেটা থাকে। কিছু পরিষেবা এই ধরনের মেটাডেটা প্রদান নাও করতে পারে। যে কোনো মেথড যা একটি দীর্ঘ-চলমান অপারেশন রিটার্ন করে, তাতে মেটাডেটার ধরন (যদি থাকে) নথিভুক্ত করা উচিত।

একটি অবজেক্ট যাতে যেকোনো ধরনের ফিল্ড থাকে। "@type" নামে একটি অতিরিক্ত ফিল্ড থাকে, যা ধরনটি শনাক্তকারী একটি URI ধারণ করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

done boolean

যদি মানটি false হয়, তার মানে অপারেশনটি এখনও চলছে। যদি true , অপারেশনটি সম্পন্ন হয়েছে এবং একটি error বা response পাওয়া যাবে।

result Union type
অপারেশনের ফলাফল, যা একটি error বা একটি বৈধ response হতে পারে। যদি done == false , তাহলে error বা response কোনটিই সেট করা হয় না। যদি done == true , তাহলে error বা response মধ্যে ঠিক একটি সেট করা যেতে পারে। কিছু পরিষেবা ফলাফল প্রদান নাও করতে পারে। result নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
error object ( Status )

ব্যর্থতা বা বাতিলের ক্ষেত্রে অপারেশনটির ত্রুটিপূর্ণ ফলাফল।

response object

অপারেশনটির স্বাভাবিক, সফল প্রতিক্রিয়া। যদি মূল মেথডটি সফল হলে কোনো ডেটা ফেরত না দেয়, যেমন Delete , তাহলে প্রতিক্রিয়াটি হবে google.protobuf.Empty । যদি মূল মেথডটি সাধারণ Get / Create / Update হয়, তাহলে প্রতিক্রিয়াটি রিসোর্স হওয়া উচিত। অন্যান্য মেথডের ক্ষেত্রে, প্রতিক্রিয়ার টাইপ হবে XxxResponse , যেখানে Xxx হলো মূল মেথডের নাম। উদাহরণস্বরূপ, যদি মূল মেথডের নাম TakeSnapshot() হয়, তাহলে অনুমিত প্রতিক্রিয়ার টাইপ হবে TakeSnapshotResponse

একটি অবজেক্ট যাতে যেকোনো ধরনের ফিল্ড থাকে। "@type" নামে একটি অতিরিক্ত ফিল্ড থাকে, যা ধরনটি শনাক্তকারী একটি URI ধারণ করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

JSON উপস্থাপনা
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // result
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // Union type
}

পদ্ধতি: fileSearchStores.operations.get

দীর্ঘক্ষণ ধরে চলা কোনো অপারেশনের সর্বশেষ অবস্থা জানা যায়। ক্লায়েন্টরা এপিআই সার্ভিসের সুপারিশ অনুযায়ী নির্দিষ্ট বিরতিতে অপারেশনের ফলাফল জানার জন্য এই পদ্ধতিটি ব্যবহার করতে পারে।

এন্ডপয়েন্ট

get https: / /generativelanguage.googleapis.com /v1beta /{name=fileSearchStores /* /operations /*}

পথের পরামিতি

name string

অপারেশন রিসোর্সের নাম। এর গঠনটি হলো fileSearchStores/{filesearchstore}/operations/{operation}

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

প্রতিক্রিয়া সংস্থা

সফল হলে, রেসপন্স বডিতে Operation এর একটি ইনস্ট্যান্স থাকে।

REST রিসোর্স: fileSearchStores.upload.operations

সম্পদ: অপারেশন

এই রিসোর্সটি একটি দীর্ঘস্থায়ী অপারেশনকে নির্দেশ করে, যা একটি নেটওয়ার্ক এপিআই কলের ফলাফল।

ক্ষেত্র
name string

সার্ভার-নির্ধারিত নামটি শুধুমাত্র সেই সার্ভিসের মধ্যেই অনন্য, যা এটিকে প্রথম ফেরত দেয়। আপনি যদি ডিফল্ট HTTP ম্যাপিং ব্যবহার করেন, তাহলে name এমন একটি রিসোর্স নেম হওয়া উচিত যার শেষে operations/{unique_id} থাকবে।

metadata object

অপারেশনটির সাথে সম্পর্কিত পরিষেবা-নির্দিষ্ট মেটাডেটা। এতে সাধারণত অগ্রগতির তথ্য এবং তৈরির সময়ের মতো সাধারণ মেটাডেটা থাকে। কিছু পরিষেবা এই ধরনের মেটাডেটা প্রদান নাও করতে পারে। যে কোনো মেথড যা একটি দীর্ঘ-চলমান অপারেশন রিটার্ন করে, তাতে মেটাডেটার ধরন (যদি থাকে) নথিভুক্ত করা উচিত।

একটি অবজেক্ট যাতে যেকোনো ধরনের ফিল্ড থাকে। "@type" নামে একটি অতিরিক্ত ফিল্ড থাকে, যা ধরনটি শনাক্তকারী একটি URI ধারণ করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

done boolean

যদি মানটি false হয়, তার মানে অপারেশনটি এখনও চলছে। যদি true , অপারেশনটি সম্পন্ন হয়েছে এবং একটি error বা response পাওয়া যাবে।

result Union type
অপারেশনের ফলাফল, যা একটি error বা একটি বৈধ response হতে পারে। যদি done == false , তাহলে error বা response কোনটিই সেট করা হয় না। যদি done == true , তাহলে error বা response মধ্যে ঠিক একটি সেট করা যেতে পারে। কিছু পরিষেবা ফলাফল প্রদান নাও করতে পারে। result নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
error object ( Status )

ব্যর্থতা বা বাতিলের ক্ষেত্রে অপারেশনটির ত্রুটিপূর্ণ ফলাফল।

response object

অপারেশনটির স্বাভাবিক, সফল প্রতিক্রিয়া। যদি মূল মেথডটি সফল হলে কোনো ডেটা ফেরত না দেয়, যেমন Delete , তাহলে প্রতিক্রিয়াটি হবে google.protobuf.Empty । যদি মূল মেথডটি সাধারণ Get / Create / Update হয়, তাহলে প্রতিক্রিয়াটি রিসোর্স হওয়া উচিত। অন্যান্য মেথডের ক্ষেত্রে, প্রতিক্রিয়ার টাইপ হবে XxxResponse , যেখানে Xxx হলো মূল মেথডের নাম। উদাহরণস্বরূপ, যদি মূল মেথডের নাম TakeSnapshot() হয়, তাহলে অনুমিত প্রতিক্রিয়ার টাইপ হবে TakeSnapshotResponse

একটি অবজেক্ট যাতে যেকোনো ধরনের ফিল্ড থাকে। "@type" নামে একটি অতিরিক্ত ফিল্ড থাকে, যা ধরনটি শনাক্তকারী একটি URI ধারণ করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

JSON উপস্থাপনা
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // result
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // Union type
}

পদ্ধতি: fileSearchStores.upload.operations.get

দীর্ঘক্ষণ ধরে চলা কোনো অপারেশনের সর্বশেষ অবস্থা জানা যায়। ক্লায়েন্টরা এপিআই সার্ভিসের সুপারিশ অনুযায়ী নির্দিষ্ট বিরতিতে অপারেশনের ফলাফল জানার জন্য এই পদ্ধতিটি ব্যবহার করতে পারে।

এন্ডপয়েন্ট

get https: / /generativelanguage.googleapis.com /v1beta /{name=fileSearchStores /* /upload /operations /*}

পথের পরামিতি

name string

অপারেশন রিসোর্সের নাম। এর গঠনটি হলো fileSearchStores/{filesearchstore}/upload/operations/{operation}

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

প্রতিক্রিয়া সংস্থা

সফল হলে, রেসপন্স বডিতে Operation এর একটি ইনস্ট্যান্স থাকে।

পদ্ধতি: media.uploadToFileSearchStore

FileSearchStore-এ ডেটা আপলোড করে, এবং FileSearchStore ডকুমেন্টে সংরক্ষণ করার আগে সেটিকে প্রিপ্রসেস ও চাঙ্ক করে।

এন্ডপয়েন্ট

  • মিডিয়া আপলোড অনুরোধের জন্য আপলোড ইউআরআই:
  • পোস্ট https: / /generativelanguage.googleapis.com /upload /v1beta /{fileSearchStoreName=fileSearchStores /*}:uploadToFileSearchStore
  • মেটাডেটা ইউআরআই, শুধুমাত্র মেটাডেটা-সংক্রান্ত অনুরোধের জন্য:
  • পোস্ট https: / /generativelanguage.googleapis.com /v1beta /{fileSearchStoreName=fileSearchStores /*}:uploadToFileSearchStore

    পথের পরামিতি

    fileSearchStoreName string

    আবশ্যক। অপরিবর্তনীয়। যে FileSearchStore ফাইলটি আপলোড করতে হবে তার নাম। উদাহরণ: fileSearchStores/my-file-search-store-123 এটি fileSearchStores/{filesearchstore} আকারে থাকে।

    অনুরোধকারী শরীর

    অনুরোধের মূল অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:

    ক্ষেত্র
    displayName string

    ঐচ্ছিক। তৈরি করা ডকুমেন্টের প্রদর্শিত নাম।

    customMetadata[] object ( CustomMetadata )

    ডেটার সাথে কাস্টম মেটাডেটা যুক্ত করা হবে।

    chunkingConfig object ( ChunkingConfig )

    ঐচ্ছিক। ডেটা কীভাবে ভাগ করতে হবে, তা সার্ভিসকে জানানোর জন্য কনফিগারেশন। এটি প্রদান করা না হলে, সার্ভিসটি ডিফল্ট প্যারামিটার ব্যবহার করবে।

    mimeType string

    ঐচ্ছিক। ডেটার MIME টাইপ। এটি প্রদান করা না হলে, আপলোড করা কন্টেন্ট থেকে তা অনুমান করে নেওয়া হবে।

    প্রতিক্রিয়া সংস্থা

    সফল হলে, প্রতিক্রিয়া অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:

    ক্ষেত্র
    name string

    সার্ভার-নির্ধারিত নামটি শুধুমাত্র সেই সার্ভিসের মধ্যেই অনন্য, যা এটিকে প্রথম ফেরত দেয়। আপনি যদি ডিফল্ট HTTP ম্যাপিং ব্যবহার করেন, তাহলে name এমন একটি রিসোর্স নেম হওয়া উচিত যার শেষে operations/{unique_id} থাকবে।

    metadata object

    অপারেশনটির সাথে সম্পর্কিত পরিষেবা-নির্দিষ্ট মেটাডেটা। এতে সাধারণত অগ্রগতির তথ্য এবং তৈরির সময়ের মতো সাধারণ মেটাডেটা থাকে। কিছু পরিষেবা এই ধরনের মেটাডেটা প্রদান নাও করতে পারে। যে কোনো মেথড যা একটি দীর্ঘ-চলমান অপারেশন রিটার্ন করে, তাতে মেটাডেটার ধরন (যদি থাকে) নথিভুক্ত করা উচিত।

    একটি অবজেক্ট যাতে যেকোনো ধরনের ফিল্ড থাকে। "@type" নামে একটি অতিরিক্ত ফিল্ড থাকে, যা ধরনটি শনাক্তকারী একটি URI ধারণ করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

    done boolean

    যদি মানটি false হয়, তার মানে অপারেশনটি এখনও চলছে। যদি true , অপারেশনটি সম্পন্ন হয়েছে এবং একটি error বা response পাওয়া যাবে।

    result Union type
    অপারেশনের ফলাফল, যা একটি error বা একটি বৈধ response হতে পারে। যদি done == false , তাহলে error বা response কোনটিই সেট করা হয় না। যদি done == true , তাহলে error বা response মধ্যে ঠিক একটি সেট করা যেতে পারে। কিছু পরিষেবা ফলাফল প্রদান নাও করতে পারে। result নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
    error object ( Status )

    ব্যর্থতা বা বাতিলের ক্ষেত্রে অপারেশনটির ত্রুটিপূর্ণ ফলাফল।

    response object

    অপারেশনটির স্বাভাবিক, সফল প্রতিক্রিয়া। যদি মূল মেথডটি সফল হলে কোনো ডেটা ফেরত না দেয়, যেমন Delete , তাহলে প্রতিক্রিয়াটি হবে google.protobuf.Empty । যদি মূল মেথডটি সাধারণ Get / Create / Update হয়, তাহলে প্রতিক্রিয়াটি রিসোর্স হওয়া উচিত। অন্যান্য মেথডের ক্ষেত্রে, প্রতিক্রিয়ার টাইপ হবে XxxResponse , যেখানে Xxx হলো মূল মেথডের নাম। উদাহরণস্বরূপ, যদি মূল মেথডের নাম TakeSnapshot() হয়, তাহলে অনুমিত প্রতিক্রিয়ার টাইপ হবে TakeSnapshotResponse

    একটি অবজেক্ট যাতে যেকোনো ধরনের ফিল্ড থাকে। "@type" নামে একটি অতিরিক্ত ফিল্ড থাকে, যা ধরনটি শনাক্তকারী একটি URI ধারণ করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

    JSON উপস্থাপনা
    {
      "name": string,
      "metadata": {
        "@type": string,
        field1: ...,
        ...
      },
      "done": boolean,
    
      // result
      "error": {
        object (Status)
      },
      "response": {
        "@type": string,
        field1: ...,
        ...
      }
      // Union type
    }