REST Resource: subscriptions

উৎস: সাবস্ক্রিপশন

গুগল ওয়ার্কস্পেস রিসোর্স সম্পর্কিত ইভেন্ট পাওয়ার জন্য একটি সাবস্ক্রিপশন। সাবস্ক্রিপশন সম্পর্কে আরও জানতে, গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই ওভারভিউ দেখুন।

JSON উপস্থাপনা
{
  "name": string,
  "uid": string,
  "targetResource": string,
  "eventTypes": [
    string
  ],
  "payloadOptions": {
    object (PayloadOptions)
  },
  "notificationEndpoint": {
    object (NotificationEndpoint)
  },
  "state": enum (State),
  "suspensionReason": enum (ErrorType),
  "authority": string,
  "createTime": string,
  "updateTime": string,
  "reconciling": boolean,
  "etag": string,

  // Union field authority_info can be only one of the following:
  "userAuthority": string,
  "serviceAccountAuthority": string
  // End of list of possible types for union field authority_info.

  // Union field authority_info can be only one of the following:
  "userAuthority": string,
  "serviceAccountAuthority": string
  // End of list of possible types for union field authority_info.

  "expireTime": string,
  "ttl": string
}
ক্ষেত্র
name

string

শনাক্তকারী। সাবস্ক্রিপশনের রিসোর্স নাম।

ফর্ম্যাট: subscriptions/{subscription}

uid

string

শুধুমাত্র আউটপুট। সাবস্ক্রিপশনের জন্য সিস্টেম-নির্ধারিত অনন্য শনাক্তকারী।

targetResource

string

আবশ্যক। অপরিবর্তনীয়। ইভেন্টের জন্য যে গুগল ওয়ার্কস্পেস রিসোর্সটি পর্যবেক্ষণ করা হয়, তা সম্পূর্ণ রিসোর্স নামটি ফরম্যাটে দেওয়া হলো। টার্গেট রিসোর্স এবং সেগুলোর সমর্থিত ইভেন্টগুলো সম্পর্কে জানতে, ‘সমর্থিত গুগল ওয়ার্কস্পেস ইভেন্ট’ দেখুন।

একজন ব্যবহারকারী আপনার অ্যাপকে একটি নির্দিষ্ট টার্গেট রিসোর্সের জন্য শুধুমাত্র একটি সাবস্ক্রিপশন তৈরি করার অনুমোদন দিতে পারেন। যদি আপনার অ্যাপ একই ব্যবহারকারীর ক্রেডেনশিয়াল ব্যবহার করে আরেকটি সাবস্ক্রিপশন তৈরি করার চেষ্টা করে, তাহলে অনুরোধটি একটি ALREADY_EXISTS ত্রুটি ফেরত দেয়।

eventTypes[]

string

আবশ্যক। অক্রমিক তালিকা। সাবস্ক্রিপশন তৈরির জন্য ইনপুট। অন্যথায়, শুধু আউটপুট। লক্ষ্য রিসোর্স সম্পর্কে গ্রহণ করার জন্য এক বা একাধিক ধরনের ইভেন্ট। ক্লাউডইভেন্টস স্পেসিফিকেশন অনুযায়ী ফরম্যাট করা।

সমর্থিত ইভেন্টের ধরণগুলো আপনার সাবস্ক্রিপশনের টার্গেট রিসোর্সের উপর নির্ভর করে। বিস্তারিত জানতে, সমর্থিত গুগল ওয়ার্কস্পেস ইভেন্টসমূহ দেখুন।

ডিফল্টরূপে, আপনি আপনার সাবস্ক্রিপশনের জীবনচক্র সম্পর্কিত ইভেন্টগুলিও পেয়ে থাকেন। এই ফিল্ডের জন্য আপনাকে জীবনচক্র ইভেন্টগুলি নির্দিষ্ট করার প্রয়োজন নেই।

যদি আপনি এমন কোনো ইভেন্ট টাইপ নির্দিষ্ট করেন যা টার্গেট রিসোর্সের জন্য বিদ্যমান নেই, তাহলে অনুরোধটি একটি HTTP 400 Bad Request স্ট্যাটাস কোড ফেরত দেয়।

payloadOptions

object ( PayloadOptions )

ঐচ্ছিক। ইভেন্ট পেলোডে কী ডেটা অন্তর্ভুক্ত করা হবে সে সম্পর্কিত বিকল্প। শুধুমাত্র গুগল চ্যাট ইভেন্টের জন্য সমর্থিত।

notificationEndpoint

object ( NotificationEndpoint )

আবশ্যক। অপরিবর্তনীয়। যে এন্ডপয়েন্টে সাবস্ক্রিপশন ইভেন্ট সরবরাহ করে, যেমন একটি পাব/সাব টপিক।

state

enum ( State )

শুধুমাত্র আউটপুট। সাবস্ক্রিপশনের অবস্থা। এটি নির্ধারণ করে যে সাবস্ক্রিপশনটি ইভেন্ট গ্রহণ করতে এবং সেগুলোকে নোটিফিকেশন এন্ডপয়েন্টে পৌঁছে দিতে পারবে কি না।

suspensionReason

enum ( ErrorType )

শুধুমাত্র আউটপুট। যে ত্রুটির কারণে সাবস্ক্রিপশনটি স্থগিত করা হয়েছিল।

সাবস্ক্রিপশনটি পুনরায় সক্রিয় করতে, ত্রুটিটি সমাধান করুন এবং subscriptions.reactivate মেথডটি কল করুন।

authority

string

শুধুমাত্র আউটপুট। যে ব্যবহারকারী সাবস্ক্রিপশন তৈরির অনুমোদন দিয়েছেন।

যখন কোনো ব্যবহারকারী সাবস্ক্রিপশনটি অনুমোদন করেন, তখন এই ফিল্ড এবং userAuthority ফিল্ডের মান একই হয় এবং এর ফরম্যাটটি হলো:

ফর্ম্যাট: users/{user}

Google Workspace ব্যবহারকারীদের জন্য, {user} ভ্যালুটি হলো Directory API-এর user.id ফিল্ড।

যখন কোনো চ্যাট অ্যাপ সাবস্ক্রিপশনটি অনুমোদন করে, তখন শুধুমাত্র serviceAccountAuthority ফিল্ডটি পূরণ হয় এবং এই ফিল্ডটি খালি থাকে।

ইউনিয়ন ফিল্ড authority_info । যে আইডেন্টিটি সাবস্ক্রিপশন তৈরির অনুমোদন দিয়েছে। authority_info নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
userAuthority

string

শুধুমাত্র আউটপুট। যে ব্যবহারকারী সাবস্ক্রিপশন তৈরির অনুমোদন দিয়েছেন। ব্যবহারকারীকে অবশ্যই targetResource দেখার অনুমতি থাকতে হবে।

Google Workspace ব্যবহারকারীদের জন্য, {user} ভ্যালুটি হলো Directory API-এর user.id ফিল্ড।

ফর্ম্যাট: users/{user}

serviceAccountAuthority

string

শুধুমাত্র আউটপুট। যে সার্ভিস অ্যাকাউন্টটি সাবস্ক্রিপশন তৈরির অনুমোদন দিতে ব্যবহৃত হয়েছিল। এই সার্ভিস অ্যাকাউন্টটি অবশ্যই সেই একই গুগল ক্লাউড প্রজেক্টের মালিকানাধীন হতে হবে যেখানে আপনি এই সাবস্ক্রিপশনটি তৈরি করেছেন।

ফর্ম্যাট: projects/{projectId}/serviceAccounts/{service_account_id}

createTime

string ( Timestamp format)

শুধুমাত্র আউটপুট। সাবস্ক্রিপশন তৈরি হওয়ার সময়।

updateTime

string ( Timestamp format)

শুধুমাত্র আউটপুট। সাবস্ক্রিপশনটি সর্বশেষ আপডেট করার সময়।

reconciling

boolean

শুধুমাত্র আউটপুট। যদি true , তাহলে সাবস্ক্রিপশনটি আপডেট হওয়ার প্রক্রিয়ায় রয়েছে।

etag

string

ঐচ্ছিক। এই চেকসামটি সার্ভার দ্বারা অন্যান্য ফিল্ডের মানের উপর ভিত্তি করে গণনা করা হয় এবং ক্লায়েন্টের কাছে কাজ এগিয়ে নিয়ে যাওয়ার আগে একটি হালনাগাদ মান আছে কিনা তা নিশ্চিত করার জন্য আপডেট অনুরোধের সাথে এটি পাঠানো হতে পারে।

ইউনিয়ন ফিল্ডের expiration শেষ হওয়ার সময়।

সর্বোচ্চ মেয়াদকাল নির্ভর করে আপনার সাবস্ক্রিপশনে ইভেন্ট পেলোডে (যা PayloadOptions ফিল্ডে নির্দিষ্ট করা থাকে) রিসোর্স ডেটা অন্তর্ভুক্ত আছে কিনা তার উপর:

  • যদি পেলোডগুলিতে রিসোর্স ডেটা বাদ দেওয়া হয়, তাহলে ৭ দিন পর্যন্ত।
  • পেলোডে রিসোর্স ডেটা অন্তর্ভুক্ত থাকলে, মেয়াদ ৪ ঘণ্টা পর্যন্ত। যদি আপনার গুগল ওয়ার্কস্পেস অর্গানাইজেশন ডোমেন-ব্যাপী ডেলিগেশনের মাধ্যমে রিসোর্সটিতে অ্যাক্সেস দেয়, তাহলে আপনি সাবস্ক্রিপশনের মেয়াদ ২৪ ঘণ্টা পর্যন্ত বাড়াতে পারবেন।

সাবস্ক্রিপশনের মেয়াদ শেষ হয়ে গেলে, এটি স্বয়ংক্রিয়ভাবে মুছে যায়। সাবস্ক্রিপশনের মেয়াদ শেষ হওয়ার ১২ ঘণ্টা এবং এক ঘণ্টা আগে আপনি notification_endpoint এ লাইফসাইকেল ইভেন্ট পাবেন। বিস্তারিত জানতে, ‘লাইফসাইকেল ইভেন্ট গ্রহণ ও তার প্রতিক্রিয়া’ দেখুন।

সাবস্ক্রিপশনের মেয়াদ শেষ হওয়া রোধ করতে, আপনি UpdateSubscription মেথড ব্যবহার করে এর মেয়াদ বাড়াতে পারেন। বিস্তারিত জানতে, ‘একটি সাবস্ক্রিপশন আপডেট বা নবায়ন করুন’ দেখুন। expiration নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:

expireTime

string ( Timestamp format)

ডিফল্ট মান খালি নয়। সাবস্ক্রিপশনের মেয়াদ শেষ হওয়ার UTC সময়চিহ্ন। ইনপুটে যা-ই ব্যবহার করা হোক না কেন, আউটপুটে এটি সর্বদা প্রদর্শিত হয়।

ttl

string ( Duration format)

শুধুমাত্র ইনপুট। সাবস্ক্রিপশনের টাইম-টু-লিভ (TTL) বা মেয়াদ। যদি অনির্দিষ্ট থাকে বা 0 সেট করা হয়, তাহলে সর্বোচ্চ সম্ভাব্য মেয়াদ ব্যবহৃত হবে।

পেলোড অপশন

ইভেন্ট পেলোডে কী ডেটা অন্তর্ভুক্ত করা হবে সে সম্পর্কিত বিকল্প। শুধুমাত্র গুগল চ্যাট ইভেন্টের জন্য সমর্থিত।

JSON উপস্থাপনা
{
  "includeResource": boolean,
  "fieldMask": string
}
ক্ষেত্র
includeResource

boolean

ঐচ্ছিক। ইভেন্ট পেলোডে পরিবর্তিত রিসোর্স সম্পর্কিত ডেটা অন্তর্ভুক্ত থাকবে কিনা। উদাহরণস্বরূপ, একটি গুগল চ্যাট বার্তা তৈরি হওয়ার ইভেন্টের ক্ষেত্রে, পেলোডটিতে Message রিসোর্স সম্পর্কিত ডেটা থাকবে কিনা। যদি false হয়, তাহলে ইভেন্ট পেলোডে শুধুমাত্র পরিবর্তিত রিসোর্সটির নাম অন্তর্ভুক্ত থাকবে।

fieldMask

string ( FieldMask format)

ঐচ্ছিক। যদি includeResource true সেট করা হয়, তাহলে ইভেন্ট পেলোডে অন্তর্ভুক্ত করার জন্য ফিল্ডগুলির তালিকা দেওয়া হবে। ফিল্ডগুলিকে কমা দিয়ে আলাদা করুন। উদাহরণস্বরূপ, একটি গুগল চ্যাট মেসেজের প্রেরক এবং তৈরির সময় অন্তর্ভুক্ত করতে, message.sender,message.createTime লিখুন। এটি বাদ দিলে, পেলোডটিতে রিসোর্সটির সমস্ত ফিল্ড অন্তর্ভুক্ত থাকবে।

আপনি যদি রিসোর্সটির জন্য এমন কোনো ফিল্ড নির্দিষ্ট করেন যা বিদ্যমান নেই, তাহলে সিস্টেম সেই ফিল্ডটিকে উপেক্ষা করে।

নোটিফিকেশনএন্ডপয়েন্ট

যে এন্ডপয়েন্টে সাবস্ক্রিপশন ইভেন্টগুলো সরবরাহ করে।

JSON উপস্থাপনা
{

  "pubsubTopic": string
}
ক্ষেত্র

ইউনিয়ন ফিল্ডের endpoint

endpoint নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:

pubsubTopic

string

অপরিবর্তনীয়। পাব/সাব টপিক যা সাবস্ক্রিপশনের জন্য ইভেন্ট গ্রহণ করে।

ফর্ম্যাট: projects/{project}/topics/{topic}

যে গুগল ক্লাউড প্রজেক্টে আপনি এই সাবস্ক্রিপশনটি তৈরি করছেন, সেই একই প্রজেক্টে আপনাকে টপিকটিও তৈরি করতে হবে।

দ্রষ্টব্য: গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই ক্রমিক ইভেন্টের সুবিধার জন্য অর্ডারিং কী ব্যবহার করে। যদি ক্লাউড পাব/সাব টপিকের মেসেজ স্টোরেজ পলিসিতে নিকটতম গুগল ক্লাউড অঞ্চলকে বাদ দেওয়ার জন্য কনফিগার করা থাকে, তাহলে অর্ডারিং কী সহ ইভেন্ট প্রকাশ করা ব্যর্থ হবে।

যখন টপিকটি ইভেন্ট গ্রহণ করে, তখন ইভেন্টগুলো পাব/সাব মেসেজ হিসেবে এনকোড করা হয়। বিস্তারিত জানতে, CloudEvents-এর জন্য Google Cloud Pub/Sub Protocol Binding দেখুন।

রাজ্য

সাবস্ক্রিপশনের জন্য সম্ভাব্য অবস্থাগুলো।

এনাম
STATE_UNSPECIFIED ডিফল্ট মান। এই মানটি ব্যবহৃত হয় না।
ACTIVE সাবস্ক্রিপশনটি সক্রিয় এবং এটি তার নোটিফিকেশন এন্ডপয়েন্টে ইভেন্ট গ্রহণ ও প্রেরণ করতে পারে।
SUSPENDED একটি ত্রুটির কারণে সাবস্ক্রিপশনটি ইভেন্ট গ্রহণ করতে পারছে না। ত্রুটিটি শনাক্ত করতে, suspensionReason ফিল্ডটি দেখুন।
DELETED সাবস্ক্রিপশনটি মুছে ফেলা হয়েছে।

ত্রুটির ধরণ

সাবস্ক্রিপশনের ক্ষেত্রে সম্ভাব্য ত্রুটিসমূহ।

এনাম
ERROR_TYPE_UNSPECIFIED ডিফল্ট মান। এই মানটি ব্যবহৃত হয় না।
USER_SCOPE_REVOKED অনুমোদনকারী ব্যবহারকারী এক বা একাধিক OAuth স্কোপের অনুমোদন প্রত্যাহার করেছেন। Google Workspace-এর অনুমোদন সম্পর্কে আরও জানতে, OAuth সম্মতি স্ক্রিনটি কনফিগার করুন দেখুন।
APP_SCOPE_REVOKED ডোমেইন প্রশাসক অ্যাপটির জন্য এক বা একাধিক OAuth স্কোপের অনুমোদন প্রত্যাহার করেছেন।
RESOURCE_DELETED সাবস্ক্রিপশনের জন্য নির্ধারিত রিসোর্সটি আর বিদ্যমান নেই।
USER_AUTHORIZATION_FAILURE যে ব্যবহারকারী সাবস্ক্রিপশনটি তৈরির অনুমোদন দিয়েছিলেন, তার আর সাবস্ক্রিপশনটির লক্ষ্য রিসোর্সে অ্যাক্সেস নেই।
APP_AUTHORIZATION_FAILURE যে অ্যাপটি সাবস্ক্রিপশনটি তৈরির অনুমোদন দিয়েছিল, সেটির এখন আর সাবস্ক্রিপশনটির টার্গেট রিসোর্সে অ্যাক্সেস নেই।
ENDPOINT_PERMISSION_DENIED গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশনটির আপনার সাবস্ক্রিপশনের নোটিফিকেশন এন্ডপয়েন্টে ইভেন্ট সরবরাহ করার অ্যাক্সেস নেই।
ENDPOINT_NOT_FOUND সাবস্ক্রিপশনটির নোটিফিকেশন এন্ডপয়েন্টটি বিদ্যমান নেই, অথবা আপনি যে গুগল ক্লাউড প্রজেক্টে সাবস্ক্রিপশনটি তৈরি করেছেন, সেখানে এন্ডপয়েন্টটি খুঁজে পাওয়া যাচ্ছে না।
ENDPOINT_RESOURCE_EXHAUSTED অপর্যাপ্ত কোটা অথবা রেট লিমিটিং-এ পৌঁছানোর কারণে সাবস্ক্রিপশনের নোটিফিকেশন এন্ডপয়েন্টটি ইভেন্ট গ্রহণ করতে ব্যর্থ হয়েছে।
OTHER একটি অজ্ঞাত ত্রুটি ঘটেছে।

পদ্ধতি

create

একটি গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন তৈরি করে।

delete

গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন মুছে ফেলে।

get

গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন সম্পর্কে বিস্তারিত তথ্য পাওয়া যায়।

list

গুগল ওয়ার্কস্পেস সাবস্ক্রিপশনগুলোর তালিকা দেখায়।

patch

গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন আপডেট বা নবায়ন করুন।

reactivate

স্থগিত করা গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন পুনরায় সক্রিয় করে।