* Provides reliable, many-to-many, asynchronous messaging between applications.

* *

* For more information about this service, see the API * Documentation *

* * @author Google, Inc. */ class Pubsub extends \Google\Service { /** See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.. */ const CLOUD_PLATFORM = "https://www.googleapis.com/auth/cloud-platform"; /** View and manage Pub/Sub topics and subscriptions. */ const PUBSUB = "https://www.googleapis.com/auth/pubsub"; public $projects_schemas; public $projects_snapshots; public $projects_subscriptions; public $projects_topics; public $projects_topics_snapshots; public $projects_topics_subscriptions; /** * Constructs the internal representation of the Pubsub service. * * @param Client|array $clientOrConfig The client used to deliver requests, or a * config array to pass to a new Client instance. * @param string $rootUrl The root URL used for requests to the service. */ public function __construct($clientOrConfig = [], $rootUrl = null) { parent::__construct($clientOrConfig); $this->rootUrl = $rootUrl ?: 'https://pubsub.googleapis.com/'; $this->servicePath = ''; $this->batchPath = 'batch'; $this->version = 'v1'; $this->serviceName = 'pubsub'; $this->projects_schemas = new Pubsub\Resource\ProjectsSchemas( $this, $this->serviceName, 'schemas', [ 'methods' => [ 'create' => [ 'path' => 'v1/{+parent}/schemas', 'httpMethod' => 'POST', 'parameters' => [ 'parent' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'schemaId' => [ 'location' => 'query', 'type' => 'string', ], ], ],'delete' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'DELETE', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'get' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'GET', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'view' => [ 'location' => 'query', 'type' => 'string', ], ], ],'getIamPolicy' => [ 'path' => 'v1/{+resource}:getIamPolicy', 'httpMethod' => 'GET', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'options.requestedPolicyVersion' => [ 'location' => 'query', 'type' => 'integer', ], ], ],'list' => [ 'path' => 'v1/{+parent}/schemas', 'httpMethod' => 'GET', 'parameters' => [ 'parent' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'pageSize' => [ 'location' => 'query', 'type' => 'integer', ], 'pageToken' => [ 'location' => 'query', 'type' => 'string', ], 'view' => [ 'location' => 'query', 'type' => 'string', ], ], ],'setIamPolicy' => [ 'path' => 'v1/{+resource}:setIamPolicy', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'testIamPermissions' => [ 'path' => 'v1/{+resource}:testIamPermissions', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'validate' => [ 'path' => 'v1/{+parent}/schemas:validate', 'httpMethod' => 'POST', 'parameters' => [ 'parent' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'validateMessage' => [ 'path' => 'v1/{+parent}/schemas:validateMessage', 'httpMethod' => 'POST', 'parameters' => [ 'parent' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ], ] ] ); $this->projects_snapshots = new Pubsub\Resource\ProjectsSnapshots( $this, $this->serviceName, 'snapshots', [ 'methods' => [ 'create' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'PUT', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'delete' => [ 'path' => 'v1/{+snapshot}', 'httpMethod' => 'DELETE', 'parameters' => [ 'snapshot' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'get' => [ 'path' => 'v1/{+snapshot}', 'httpMethod' => 'GET', 'parameters' => [ 'snapshot' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'getIamPolicy' => [ 'path' => 'v1/{+resource}:getIamPolicy', 'httpMethod' => 'GET', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'options.requestedPolicyVersion' => [ 'location' => 'query', 'type' => 'integer', ], ], ],'list' => [ 'path' => 'v1/{+project}/snapshots', 'httpMethod' => 'GET', 'parameters' => [ 'project' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'pageSize' => [ 'location' => 'query', 'type' => 'integer', ], 'pageToken' => [ 'location' => 'query', 'type' => 'string', ], ], ],'patch' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'PATCH', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'setIamPolicy' => [ 'path' => 'v1/{+resource}:setIamPolicy', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'testIamPermissions' => [ 'path' => 'v1/{+resource}:testIamPermissions', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ], ] ] ); $this->projects_subscriptions = new Pubsub\Resource\ProjectsSubscriptions( $this, $this->serviceName, 'subscriptions', [ 'methods' => [ 'acknowledge' => [ 'path' => 'v1/{+subscription}:acknowledge', 'httpMethod' => 'POST', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'create' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'PUT', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'delete' => [ 'path' => 'v1/{+subscription}', 'httpMethod' => 'DELETE', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'detach' => [ 'path' => 'v1/{+subscription}:detach', 'httpMethod' => 'POST', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'get' => [ 'path' => 'v1/{+subscription}', 'httpMethod' => 'GET', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'getIamPolicy' => [ 'path' => 'v1/{+resource}:getIamPolicy', 'httpMethod' => 'GET', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'options.requestedPolicyVersion' => [ 'location' => 'query', 'type' => 'integer', ], ], ],'list' => [ 'path' => 'v1/{+project}/subscriptions', 'httpMethod' => 'GET', 'parameters' => [ 'project' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'pageSize' => [ 'location' => 'query', 'type' => 'integer', ], 'pageToken' => [ 'location' => 'query', 'type' => 'string', ], ], ],'modifyAckDeadline' => [ 'path' => 'v1/{+subscription}:modifyAckDeadline', 'httpMethod' => 'POST', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'modifyPushConfig' => [ 'path' => 'v1/{+subscription}:modifyPushConfig', 'httpMethod' => 'POST', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'patch' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'PATCH', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'pull' => [ 'path' => 'v1/{+subscription}:pull', 'httpMethod' => 'POST', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'seek' => [ 'path' => 'v1/{+subscription}:seek', 'httpMethod' => 'POST', 'parameters' => [ 'subscription' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'setIamPolicy' => [ 'path' => 'v1/{+resource}:setIamPolicy', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'testIamPermissions' => [ 'path' => 'v1/{+resource}:testIamPermissions', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ], ] ] ); $this->projects_topics = new Pubsub\Resource\ProjectsTopics( $this, $this->serviceName, 'topics', [ 'methods' => [ 'create' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'PUT', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'delete' => [ 'path' => 'v1/{+topic}', 'httpMethod' => 'DELETE', 'parameters' => [ 'topic' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'get' => [ 'path' => 'v1/{+topic}', 'httpMethod' => 'GET', 'parameters' => [ 'topic' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'getIamPolicy' => [ 'path' => 'v1/{+resource}:getIamPolicy', 'httpMethod' => 'GET', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'options.requestedPolicyVersion' => [ 'location' => 'query', 'type' => 'integer', ], ], ],'list' => [ 'path' => 'v1/{+project}/topics', 'httpMethod' => 'GET', 'parameters' => [ 'project' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'pageSize' => [ 'location' => 'query', 'type' => 'integer', ], 'pageToken' => [ 'location' => 'query', 'type' => 'string', ], ], ],'patch' => [ 'path' => 'v1/{+name}', 'httpMethod' => 'PATCH', 'parameters' => [ 'name' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'publish' => [ 'path' => 'v1/{+topic}:publish', 'httpMethod' => 'POST', 'parameters' => [ 'topic' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'setIamPolicy' => [ 'path' => 'v1/{+resource}:setIamPolicy', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ],'testIamPermissions' => [ 'path' => 'v1/{+resource}:testIamPermissions', 'httpMethod' => 'POST', 'parameters' => [ 'resource' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], ], ], ] ] ); $this->projects_topics_snapshots = new Pubsub\Resource\ProjectsTopicsSnapshots( $this, $this->serviceName, 'snapshots', [ 'methods' => [ 'list' => [ 'path' => 'v1/{+topic}/snapshots', 'httpMethod' => 'GET', 'parameters' => [ 'topic' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'pageSize' => [ 'location' => 'query', 'type' => 'integer', ], 'pageToken' => [ 'location' => 'query', 'type' => 'string', ], ], ], ] ] ); $this->projects_topics_subscriptions = new Pubsub\Resource\ProjectsTopicsSubscriptions( $this, $this->serviceName, 'subscriptions', [ 'methods' => [ 'list' => [ 'path' => 'v1/{+topic}/subscriptions', 'httpMethod' => 'GET', 'parameters' => [ 'topic' => [ 'location' => 'path', 'type' => 'string', 'required' => true, ], 'pageSize' => [ 'location' => 'query', 'type' => 'integer', ], 'pageToken' => [ 'location' => 'query', 'type' => 'string', ], ], ], ] ] ); } } // Adding a class alias for backwards compatibility with the previous class name. class_alias(Pubsub::class, 'Google_Service_Pubsub');