| Index: discovery/googleapis_beta/pubsub__v1beta2.json
 | 
| diff --git a/discovery/googleapis_beta/pubsub__v1beta2.json b/discovery/googleapis_beta/pubsub__v1beta2.json
 | 
| index e0b0a477f80af21dabf7a7232d77fb373a3e1242..dbbd9223988181df48069761203ba0d0ebf70a64 100644
 | 
| --- a/discovery/googleapis_beta/pubsub__v1beta2.json
 | 
| +++ b/discovery/googleapis_beta/pubsub__v1beta2.json
 | 
| @@ -28,37 +28,16 @@
 | 
|      "ownerDomain": "google.com",
 | 
|      "ownerName": "Google",
 | 
|      "parameters": {
 | 
| -        "access_token": {
 | 
| -            "description": "OAuth access token.",
 | 
| -            "location": "query",
 | 
| -            "type": "string"
 | 
| -        },
 | 
| -        "key": {
 | 
| -            "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
 | 
| -            "location": "query",
 | 
| -            "type": "string"
 | 
| -        },
 | 
| -        "quotaUser": {
 | 
| -            "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
 | 
| +        "bearer_token": {
 | 
| +            "description": "OAuth bearer token.",
 | 
|              "location": "query",
 | 
|              "type": "string"
 | 
|          },
 | 
| -        "pp": {
 | 
| -            "default": "true",
 | 
| -            "description": "Pretty-print response.",
 | 
| -            "location": "query",
 | 
| -            "type": "boolean"
 | 
| -        },
 | 
|          "oauth_token": {
 | 
|              "description": "OAuth 2.0 token for the current user.",
 | 
|              "location": "query",
 | 
|              "type": "string"
 | 
|          },
 | 
| -        "bearer_token": {
 | 
| -            "description": "OAuth bearer token.",
 | 
| -            "location": "query",
 | 
| -            "type": "string"
 | 
| -        },
 | 
|          "upload_protocol": {
 | 
|              "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
 | 
|              "location": "query",
 | 
| @@ -80,6 +59,11 @@
 | 
|              "location": "query",
 | 
|              "type": "string"
 | 
|          },
 | 
| +        "callback": {
 | 
| +            "description": "JSONP",
 | 
| +            "location": "query",
 | 
| +            "type": "string"
 | 
| +        },
 | 
|          "$.xgafv": {
 | 
|              "description": "V1 error format.",
 | 
|              "enum": [
 | 
| @@ -93,11 +77,6 @@
 | 
|              "location": "query",
 | 
|              "type": "string"
 | 
|          },
 | 
| -        "callback": {
 | 
| -            "description": "JSONP",
 | 
| -            "location": "query",
 | 
| -            "type": "string"
 | 
| -        },
 | 
|          "alt": {
 | 
|              "default": "json",
 | 
|              "description": "Data format for response.",
 | 
| @@ -113,114 +92,138 @@
 | 
|              ],
 | 
|              "location": "query",
 | 
|              "type": "string"
 | 
| +        },
 | 
| +        "access_token": {
 | 
| +            "description": "OAuth access token.",
 | 
| +            "location": "query",
 | 
| +            "type": "string"
 | 
| +        },
 | 
| +        "key": {
 | 
| +            "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
 | 
| +            "location": "query",
 | 
| +            "type": "string"
 | 
| +        },
 | 
| +        "quotaUser": {
 | 
| +            "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
 | 
| +            "location": "query",
 | 
| +            "type": "string"
 | 
| +        },
 | 
| +        "pp": {
 | 
| +            "default": "true",
 | 
| +            "description": "Pretty-print response.",
 | 
| +            "location": "query",
 | 
| +            "type": "boolean"
 | 
|          }
 | 
|      },
 | 
|      "protocol": "rest",
 | 
|      "resources": {
 | 
|          "projects": {
 | 
|              "resources": {
 | 
| -                "topics": {
 | 
| +                "subscriptions": {
 | 
|                      "methods": {
 | 
| -                        "get": {
 | 
| -                            "description": "Gets the configuration of a topic.",
 | 
| -                            "httpMethod": "GET",
 | 
| -                            "id": "pubsub.projects.topics.get",
 | 
| +                        "testIamPermissions": {
 | 
| +                            "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.",
 | 
| +                            "httpMethod": "POST",
 | 
| +                            "id": "pubsub.projects.subscriptions.testIamPermissions",
 | 
|                              "parameterOrder": [
 | 
| -                                "topic"
 | 
| +                                "resource"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "topic": {
 | 
| -                                    "description": "The name of the topic to get.",
 | 
| +                                "resource": {
 | 
| +                                    "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+topic}",
 | 
| +                            "path": "v1beta2/{+resource}:testIamPermissions",
 | 
| +                            "request": {
 | 
| +                                "$ref": "TestIamPermissionsRequest"
 | 
| +                            },
 | 
|                              "response": {
 | 
| -                                "$ref": "Topic"
 | 
| +                                "$ref": "TestIamPermissionsResponse"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "publish": {
 | 
| -                            "description": "Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic\ndoes not exist. The message payload must not be empty; it must contain\n either a non-empty data field, or at least one attribute.",
 | 
| +                        "modifyPushConfig": {
 | 
| +                            "description": "Modifies the `PushConfig` for a specified subscription.\n\nThis may be used to change a push subscription to a pull one (signified by\nan empty `PushConfig`) or vice versa, or change the endpoint URL and other\nattributes of a push subscription. Messages will accumulate for delivery\ncontinuously through the call regardless of changes to the `PushConfig`.",
 | 
|                              "httpMethod": "POST",
 | 
| -                            "id": "pubsub.projects.topics.publish",
 | 
| +                            "id": "pubsub.projects.subscriptions.modifyPushConfig",
 | 
|                              "parameterOrder": [
 | 
| -                                "topic"
 | 
| +                                "subscription"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "topic": {
 | 
| -                                    "description": "The messages in the request will be published on this topic.",
 | 
| +                                "subscription": {
 | 
| +                                    "description": "The name of the subscription.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+topic}:publish",
 | 
| +                            "path": "v1beta2/{+subscription}:modifyPushConfig",
 | 
|                              "request": {
 | 
| -                                "$ref": "PublishRequest"
 | 
| +                                "$ref": "ModifyPushConfigRequest"
 | 
|                              },
 | 
|                              "response": {
 | 
| -                                "$ref": "PublishResponse"
 | 
| +                                "$ref": "Empty"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "testIamPermissions": {
 | 
| -                            "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.",
 | 
| -                            "httpMethod": "POST",
 | 
| -                            "id": "pubsub.projects.topics.testIamPermissions",
 | 
| +                        "delete": {
 | 
| +                            "description": "Deletes an existing subscription. All pending messages in the subscription\nare immediately dropped. Calls to `Pull` after deletion will return\n`NOT_FOUND`. After a subscription is deleted, a new one may be created with\nthe same name, but the new one has no association with the old\nsubscription, or its topic unless the same topic is specified.",
 | 
| +                            "httpMethod": "DELETE",
 | 
| +                            "id": "pubsub.projects.subscriptions.delete",
 | 
|                              "parameterOrder": [
 | 
| -                                "resource"
 | 
| +                                "subscription"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "resource": {
 | 
| -                                    "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
| +                                "subscription": {
 | 
| +                                    "description": "The subscription to delete.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+resource}:testIamPermissions",
 | 
| -                            "request": {
 | 
| -                                "$ref": "TestIamPermissionsRequest"
 | 
| -                            },
 | 
| +                            "path": "v1beta2/{+subscription}",
 | 
|                              "response": {
 | 
| -                                "$ref": "TestIamPermissionsResponse"
 | 
| +                                "$ref": "Empty"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "delete": {
 | 
| -                            "description": "Deletes the topic with the given name. Returns `NOT_FOUND` if the topic\ndoes not exist. After a topic is deleted, a new topic may be created with\nthe same name; this is an entirely new topic with none of the old\nconfiguration or subscriptions. Existing subscriptions to this topic are\nnot deleted, but their `topic` field is set to `_deleted-topic_`.",
 | 
| -                            "httpMethod": "DELETE",
 | 
| -                            "id": "pubsub.projects.topics.delete",
 | 
| +                        "pull": {
 | 
| +                            "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The server may return `UNAVAILABLE` if\nthere are too many concurrent pull requests pending for the given\nsubscription.",
 | 
| +                            "httpMethod": "POST",
 | 
| +                            "id": "pubsub.projects.subscriptions.pull",
 | 
|                              "parameterOrder": [
 | 
| -                                "topic"
 | 
| +                                "subscription"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "topic": {
 | 
| -                                    "description": "Name of the topic to delete.",
 | 
| +                                "subscription": {
 | 
| +                                    "description": "The subscription from which messages should be pulled.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+topic}",
 | 
| +                            "path": "v1beta2/{+subscription}:pull",
 | 
| +                            "request": {
 | 
| +                                "$ref": "PullRequest"
 | 
| +                            },
 | 
|                              "response": {
 | 
| -                                "$ref": "Empty"
 | 
| +                                "$ref": "PullResponse"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
| @@ -228,63 +231,35 @@
 | 
|                              ]
 | 
|                          },
 | 
|                          "list": {
 | 
| -                            "description": "Lists matching topics.",
 | 
| +                            "description": "Lists matching subscriptions.",
 | 
|                              "httpMethod": "GET",
 | 
| -                            "id": "pubsub.projects.topics.list",
 | 
| +                            "id": "pubsub.projects.subscriptions.list",
 | 
|                              "parameterOrder": [
 | 
|                                  "project"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| +                                "pageToken": {
 | 
| +                                    "description": "The value returned by the last `ListSubscriptionsResponse`; indicates that\nthis is a continuation of a prior `ListSubscriptions` call, and that the\nsystem should return the next page of data.",
 | 
| +                                    "location": "query",
 | 
| +                                    "type": "string"
 | 
| +                                },
 | 
|                                  "pageSize": {
 | 
| -                                    "description": "Maximum number of topics to return.",
 | 
| +                                    "description": "Maximum number of subscriptions to return.",
 | 
|                                      "format": "int32",
 | 
|                                      "location": "query",
 | 
|                                      "type": "integer"
 | 
|                                  },
 | 
|                                  "project": {
 | 
| -                                    "description": "The name of the cloud project that topics belong to.",
 | 
| +                                    "description": "The name of the cloud project that subscriptions belong to.",
 | 
|                                      "location": "path",
 | 
|                                      "pattern": "^projects/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
| -                                },
 | 
| -                                "pageToken": {
 | 
| -                                    "description": "The value returned by the last `ListTopicsResponse`; indicates that this is\na continuation of a prior `ListTopics` call, and that the system should\nreturn the next page of data.",
 | 
| -                                    "location": "query",
 | 
| -                                    "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+project}/topics",
 | 
| -                            "response": {
 | 
| -                                "$ref": "ListTopicsResponse"
 | 
| -                            },
 | 
| -                            "scopes": [
 | 
| -                                "https://www.googleapis.com/auth/cloud-platform",
 | 
| -                                "https://www.googleapis.com/auth/pubsub"
 | 
| -                            ]
 | 
| -                        },
 | 
| -                        "setIamPolicy": {
 | 
| -                            "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.",
 | 
| -                            "httpMethod": "POST",
 | 
| -                            "id": "pubsub.projects.topics.setIamPolicy",
 | 
| -                            "parameterOrder": [
 | 
| -                                "resource"
 | 
| -                            ],
 | 
| -                            "parameters": {
 | 
| -                                "resource": {
 | 
| -                                    "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.",
 | 
| -                                    "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| -                                    "required": true,
 | 
| -                                    "type": "string"
 | 
| -                                }
 | 
| -                            },
 | 
| -                            "path": "v1beta2/{+resource}:setIamPolicy",
 | 
| -                            "request": {
 | 
| -                                "$ref": "SetIamPolicyRequest"
 | 
| -                            },
 | 
| +                            "path": "v1beta2/{+project}/subscriptions",
 | 
|                              "response": {
 | 
| -                                "$ref": "Policy"
 | 
| +                                "$ref": "ListSubscriptionsResponse"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
| @@ -292,121 +267,53 @@
 | 
|                              ]
 | 
|                          },
 | 
|                          "create": {
 | 
| -                            "description": "Creates the given topic with the given name.",
 | 
| +                            "description": "Creates a subscription to a given topic.\nIf the subscription already exists, returns `ALREADY_EXISTS`.\nIf the corresponding topic doesn't exist, returns `NOT_FOUND`.\n\nIf the name is not provided in the request, the server will assign a random\nname for this subscription on the same project as the topic. Note that\nfor REST API requests, you must specify a name.",
 | 
|                              "httpMethod": "PUT",
 | 
| -                            "id": "pubsub.projects.topics.create",
 | 
| +                            "id": "pubsub.projects.subscriptions.create",
 | 
|                              "parameterOrder": [
 | 
|                                  "name"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
|                                  "name": {
 | 
| -                                    "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.",
 | 
| +                                    "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
|                              "path": "v1beta2/{+name}",
 | 
|                              "request": {
 | 
| -                                "$ref": "Topic"
 | 
| +                                "$ref": "Subscription"
 | 
|                              },
 | 
|                              "response": {
 | 
| -                                "$ref": "Topic"
 | 
| +                                "$ref": "Subscription"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "getIamPolicy": {
 | 
| -                            "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.",
 | 
| -                            "httpMethod": "GET",
 | 
| -                            "id": "pubsub.projects.topics.getIamPolicy",
 | 
| -                            "parameterOrder": [
 | 
| -                                "resource"
 | 
| -                            ],
 | 
| -                            "parameters": {
 | 
| -                                "resource": {
 | 
| -                                    "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
| -                                    "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| -                                    "required": true,
 | 
| -                                    "type": "string"
 | 
| -                                }
 | 
| -                            },
 | 
| -                            "path": "v1beta2/{+resource}:getIamPolicy",
 | 
| -                            "response": {
 | 
| -                                "$ref": "Policy"
 | 
| -                            },
 | 
| -                            "scopes": [
 | 
| -                                "https://www.googleapis.com/auth/cloud-platform",
 | 
| -                                "https://www.googleapis.com/auth/pubsub"
 | 
| -                            ]
 | 
| -                        }
 | 
| -                    },
 | 
| -                    "resources": {
 | 
| -                        "subscriptions": {
 | 
| -                            "methods": {
 | 
| -                                "list": {
 | 
| -                                    "description": "Lists the name of the subscriptions for this topic.",
 | 
| -                                    "httpMethod": "GET",
 | 
| -                                    "id": "pubsub.projects.topics.subscriptions.list",
 | 
| -                                    "parameterOrder": [
 | 
| -                                        "topic"
 | 
| -                                    ],
 | 
| -                                    "parameters": {
 | 
| -                                        "pageToken": {
 | 
| -                                            "description": "The value returned by the last `ListTopicSubscriptionsResponse`; indicates\nthat this is a continuation of a prior `ListTopicSubscriptions` call, and\nthat the system should return the next page of data.",
 | 
| -                                            "location": "query",
 | 
| -                                            "type": "string"
 | 
| -                                        },
 | 
| -                                        "pageSize": {
 | 
| -                                            "description": "Maximum number of subscription names to return.",
 | 
| -                                            "format": "int32",
 | 
| -                                            "location": "query",
 | 
| -                                            "type": "integer"
 | 
| -                                        },
 | 
| -                                        "topic": {
 | 
| -                                            "description": "The name of the topic that subscriptions are attached to.",
 | 
| -                                            "location": "path",
 | 
| -                                            "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| -                                            "required": true,
 | 
| -                                            "type": "string"
 | 
| -                                        }
 | 
| -                                    },
 | 
| -                                    "path": "v1beta2/{+topic}/subscriptions",
 | 
| -                                    "response": {
 | 
| -                                        "$ref": "ListTopicSubscriptionsResponse"
 | 
| -                                    },
 | 
| -                                    "scopes": [
 | 
| -                                        "https://www.googleapis.com/auth/cloud-platform",
 | 
| -                                        "https://www.googleapis.com/auth/pubsub"
 | 
| -                                    ]
 | 
| -                                }
 | 
| -                            }
 | 
| -                        }
 | 
| -                    }
 | 
| -                },
 | 
| -                "subscriptions": {
 | 
| -                    "methods": {
 | 
| -                        "getIamPolicy": {
 | 
| -                            "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.",
 | 
| -                            "httpMethod": "GET",
 | 
| -                            "id": "pubsub.projects.subscriptions.getIamPolicy",
 | 
| +                        "setIamPolicy": {
 | 
| +                            "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.",
 | 
| +                            "httpMethod": "POST",
 | 
| +                            "id": "pubsub.projects.subscriptions.setIamPolicy",
 | 
|                              "parameterOrder": [
 | 
|                                  "resource"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
|                                  "resource": {
 | 
| -                                    "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
| +                                    "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.",
 | 
|                                      "location": "path",
 | 
|                                      "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+resource}:getIamPolicy",
 | 
| +                            "path": "v1beta2/{+resource}:setIamPolicy",
 | 
| +                            "request": {
 | 
| +                                "$ref": "SetIamPolicyRequest"
 | 
| +                            },
 | 
|                              "response": {
 | 
|                                  "$ref": "Policy"
 | 
|                              },
 | 
| @@ -471,6 +378,31 @@
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| +                        "getIamPolicy": {
 | 
| +                            "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.",
 | 
| +                            "httpMethod": "GET",
 | 
| +                            "id": "pubsub.projects.subscriptions.getIamPolicy",
 | 
| +                            "parameterOrder": [
 | 
| +                                "resource"
 | 
| +                            ],
 | 
| +                            "parameters": {
 | 
| +                                "resource": {
 | 
| +                                    "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
| +                                    "location": "path",
 | 
| +                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
| +                                    "required": true,
 | 
| +                                    "type": "string"
 | 
| +                                }
 | 
| +                            },
 | 
| +                            "path": "v1beta2/{+resource}:getIamPolicy",
 | 
| +                            "response": {
 | 
| +                                "$ref": "Policy"
 | 
| +                            },
 | 
| +                            "scopes": [
 | 
| +                                "https://www.googleapis.com/auth/cloud-platform",
 | 
| +                                "https://www.googleapis.com/auth/pubsub"
 | 
| +                            ]
 | 
| +                        },
 | 
|                          "get": {
 | 
|                              "description": "Gets the configuration details of a subscription.",
 | 
|                              "httpMethod": "GET",
 | 
| @@ -495,208 +427,276 @@
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
| +                        }
 | 
| +                    }
 | 
| +                },
 | 
| +                "topics": {
 | 
| +                    "methods": {
 | 
| +                        "create": {
 | 
| +                            "description": "Creates the given topic with the given name.",
 | 
| +                            "httpMethod": "PUT",
 | 
| +                            "id": "pubsub.projects.topics.create",
 | 
| +                            "parameterOrder": [
 | 
| +                                "name"
 | 
| +                            ],
 | 
| +                            "parameters": {
 | 
| +                                "name": {
 | 
| +                                    "description": "The name of the topic. It must have the format\n`\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter,\nand contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`),\nunderscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent\nsigns (`%`). It must be between 3 and 255 characters in length, and it\nmust not start with `\"goog\"`.",
 | 
| +                                    "location": "path",
 | 
| +                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| +                                    "required": true,
 | 
| +                                    "type": "string"
 | 
| +                                }
 | 
| +                            },
 | 
| +                            "path": "v1beta2/{+name}",
 | 
| +                            "request": {
 | 
| +                                "$ref": "Topic"
 | 
| +                            },
 | 
| +                            "response": {
 | 
| +                                "$ref": "Topic"
 | 
| +                            },
 | 
| +                            "scopes": [
 | 
| +                                "https://www.googleapis.com/auth/cloud-platform",
 | 
| +                                "https://www.googleapis.com/auth/pubsub"
 | 
| +                            ]
 | 
|                          },
 | 
| -                        "testIamPermissions": {
 | 
| -                            "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.",
 | 
| +                        "setIamPolicy": {
 | 
| +                            "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.",
 | 
|                              "httpMethod": "POST",
 | 
| -                            "id": "pubsub.projects.subscriptions.testIamPermissions",
 | 
| +                            "id": "pubsub.projects.topics.setIamPolicy",
 | 
|                              "parameterOrder": [
 | 
|                                  "resource"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
|                                  "resource": {
 | 
| -                                    "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
| +                                    "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+resource}:testIamPermissions",
 | 
| +                            "path": "v1beta2/{+resource}:setIamPolicy",
 | 
|                              "request": {
 | 
| -                                "$ref": "TestIamPermissionsRequest"
 | 
| +                                "$ref": "SetIamPolicyRequest"
 | 
|                              },
 | 
|                              "response": {
 | 
| -                                "$ref": "TestIamPermissionsResponse"
 | 
| +                                "$ref": "Policy"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "modifyPushConfig": {
 | 
| -                            "description": "Modifies the `PushConfig` for a specified subscription.\n\nThis may be used to change a push subscription to a pull one (signified by\nan empty `PushConfig`) or vice versa, or change the endpoint URL and other\nattributes of a push subscription. Messages will accumulate for delivery\ncontinuously through the call regardless of changes to the `PushConfig`.",
 | 
| -                            "httpMethod": "POST",
 | 
| -                            "id": "pubsub.projects.subscriptions.modifyPushConfig",
 | 
| +                        "getIamPolicy": {
 | 
| +                            "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.",
 | 
| +                            "httpMethod": "GET",
 | 
| +                            "id": "pubsub.projects.topics.getIamPolicy",
 | 
|                              "parameterOrder": [
 | 
| -                                "subscription"
 | 
| +                                "resource"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "subscription": {
 | 
| -                                    "description": "The name of the subscription.",
 | 
| +                                "resource": {
 | 
| +                                    "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+subscription}:modifyPushConfig",
 | 
| -                            "request": {
 | 
| -                                "$ref": "ModifyPushConfigRequest"
 | 
| -                            },
 | 
| +                            "path": "v1beta2/{+resource}:getIamPolicy",
 | 
|                              "response": {
 | 
| -                                "$ref": "Empty"
 | 
| +                                "$ref": "Policy"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "delete": {
 | 
| -                            "description": "Deletes an existing subscription. All pending messages in the subscription\nare immediately dropped. Calls to `Pull` after deletion will return\n`NOT_FOUND`. After a subscription is deleted, a new one may be created with\nthe same name, but the new one has no association with the old\nsubscription, or its topic unless the same topic is specified.",
 | 
| -                            "httpMethod": "DELETE",
 | 
| -                            "id": "pubsub.projects.subscriptions.delete",
 | 
| +                        "get": {
 | 
| +                            "description": "Gets the configuration of a topic.",
 | 
| +                            "httpMethod": "GET",
 | 
| +                            "id": "pubsub.projects.topics.get",
 | 
|                              "parameterOrder": [
 | 
| -                                "subscription"
 | 
| +                                "topic"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "subscription": {
 | 
| -                                    "description": "The subscription to delete.",
 | 
| +                                "topic": {
 | 
| +                                    "description": "The name of the topic to get.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+subscription}",
 | 
| +                            "path": "v1beta2/{+topic}",
 | 
|                              "response": {
 | 
| -                                "$ref": "Empty"
 | 
| +                                "$ref": "Topic"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "pull": {
 | 
| -                            "description": "Pulls messages from the server. Returns an empty list if there are no\nmessages available in the backlog. The server may return `UNAVAILABLE` if\nthere are too many concurrent pull requests pending for the given\nsubscription.",
 | 
| +                        "publish": {
 | 
| +                            "description": "Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic\ndoes not exist. The message payload must not be empty; it must contain\n either a non-empty data field, or at least one attribute.",
 | 
|                              "httpMethod": "POST",
 | 
| -                            "id": "pubsub.projects.subscriptions.pull",
 | 
| +                            "id": "pubsub.projects.topics.publish",
 | 
|                              "parameterOrder": [
 | 
| -                                "subscription"
 | 
| +                                "topic"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "subscription": {
 | 
| -                                    "description": "The subscription from which messages should be pulled.",
 | 
| +                                "topic": {
 | 
| +                                    "description": "The messages in the request will be published on this topic.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+subscription}:pull",
 | 
| +                            "path": "v1beta2/{+topic}:publish",
 | 
|                              "request": {
 | 
| -                                "$ref": "PullRequest"
 | 
| +                                "$ref": "PublishRequest"
 | 
|                              },
 | 
|                              "response": {
 | 
| -                                "$ref": "PullResponse"
 | 
| +                                "$ref": "PublishResponse"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "list": {
 | 
| -                            "description": "Lists matching subscriptions.",
 | 
| -                            "httpMethod": "GET",
 | 
| -                            "id": "pubsub.projects.subscriptions.list",
 | 
| +                        "testIamPermissions": {
 | 
| +                            "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.",
 | 
| +                            "httpMethod": "POST",
 | 
| +                            "id": "pubsub.projects.topics.testIamPermissions",
 | 
|                              "parameterOrder": [
 | 
| -                                "project"
 | 
| +                                "resource"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "pageSize": {
 | 
| -                                    "description": "Maximum number of subscriptions to return.",
 | 
| -                                    "format": "int32",
 | 
| -                                    "location": "query",
 | 
| -                                    "type": "integer"
 | 
| -                                },
 | 
| -                                "project": {
 | 
| -                                    "description": "The name of the cloud project that subscriptions belong to.",
 | 
| +                                "resource": {
 | 
| +                                    "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
| -                                },
 | 
| -                                "pageToken": {
 | 
| -                                    "description": "The value returned by the last `ListSubscriptionsResponse`; indicates that\nthis is a continuation of a prior `ListSubscriptions` call, and that the\nsystem should return the next page of data.",
 | 
| -                                    "location": "query",
 | 
| -                                    "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+project}/subscriptions",
 | 
| +                            "path": "v1beta2/{+resource}:testIamPermissions",
 | 
| +                            "request": {
 | 
| +                                "$ref": "TestIamPermissionsRequest"
 | 
| +                            },
 | 
|                              "response": {
 | 
| -                                "$ref": "ListSubscriptionsResponse"
 | 
| +                                "$ref": "TestIamPermissionsResponse"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "create": {
 | 
| -                            "description": "Creates a subscription to a given topic.\nIf the subscription already exists, returns `ALREADY_EXISTS`.\nIf the corresponding topic doesn't exist, returns `NOT_FOUND`.\n\nIf the name is not provided in the request, the server will assign a random\nname for this subscription on the same project as the topic. Note that\nfor REST API requests, you must specify a name.",
 | 
| -                            "httpMethod": "PUT",
 | 
| -                            "id": "pubsub.projects.subscriptions.create",
 | 
| +                        "delete": {
 | 
| +                            "description": "Deletes the topic with the given name. Returns `NOT_FOUND` if the topic\ndoes not exist. After a topic is deleted, a new topic may be created with\nthe same name; this is an entirely new topic with none of the old\nconfiguration or subscriptions. Existing subscriptions to this topic are\nnot deleted, but their `topic` field is set to `_deleted-topic_`.",
 | 
| +                            "httpMethod": "DELETE",
 | 
| +                            "id": "pubsub.projects.topics.delete",
 | 
|                              "parameterOrder": [
 | 
| -                                "name"
 | 
| +                                "topic"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "name": {
 | 
| -                                    "description": "The name of the subscription. It must have the format\n`\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must\nstart with a letter, and contain only letters (`[A-Za-z]`), numbers\n(`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),\nplus (`+`) or percent signs (`%`). It must be between 3 and 255 characters\nin length, and it must not start with `\"goog\"`.",
 | 
| +                                "topic": {
 | 
| +                                    "description": "Name of the topic to delete.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+name}",
 | 
| -                            "request": {
 | 
| -                                "$ref": "Subscription"
 | 
| -                            },
 | 
| +                            "path": "v1beta2/{+topic}",
 | 
|                              "response": {
 | 
| -                                "$ref": "Subscription"
 | 
| +                                "$ref": "Empty"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          },
 | 
| -                        "setIamPolicy": {
 | 
| -                            "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.",
 | 
| -                            "httpMethod": "POST",
 | 
| -                            "id": "pubsub.projects.subscriptions.setIamPolicy",
 | 
| +                        "list": {
 | 
| +                            "description": "Lists matching topics.",
 | 
| +                            "httpMethod": "GET",
 | 
| +                            "id": "pubsub.projects.topics.list",
 | 
|                              "parameterOrder": [
 | 
| -                                "resource"
 | 
| +                                "project"
 | 
|                              ],
 | 
|                              "parameters": {
 | 
| -                                "resource": {
 | 
| -                                    "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.",
 | 
| +                                "pageToken": {
 | 
| +                                    "description": "The value returned by the last `ListTopicsResponse`; indicates that this is\na continuation of a prior `ListTopics` call, and that the system should\nreturn the next page of data.",
 | 
| +                                    "location": "query",
 | 
| +                                    "type": "string"
 | 
| +                                },
 | 
| +                                "pageSize": {
 | 
| +                                    "description": "Maximum number of topics to return.",
 | 
| +                                    "format": "int32",
 | 
| +                                    "location": "query",
 | 
| +                                    "type": "integer"
 | 
| +                                },
 | 
| +                                "project": {
 | 
| +                                    "description": "The name of the cloud project that topics belong to.",
 | 
|                                      "location": "path",
 | 
| -                                    "pattern": "^projects/[^/]+/subscriptions/[^/]+$",
 | 
| +                                    "pattern": "^projects/[^/]+$",
 | 
|                                      "required": true,
 | 
|                                      "type": "string"
 | 
|                                  }
 | 
|                              },
 | 
| -                            "path": "v1beta2/{+resource}:setIamPolicy",
 | 
| -                            "request": {
 | 
| -                                "$ref": "SetIamPolicyRequest"
 | 
| -                            },
 | 
| +                            "path": "v1beta2/{+project}/topics",
 | 
|                              "response": {
 | 
| -                                "$ref": "Policy"
 | 
| +                                "$ref": "ListTopicsResponse"
 | 
|                              },
 | 
|                              "scopes": [
 | 
|                                  "https://www.googleapis.com/auth/cloud-platform",
 | 
|                                  "https://www.googleapis.com/auth/pubsub"
 | 
|                              ]
 | 
|                          }
 | 
| +                    },
 | 
| +                    "resources": {
 | 
| +                        "subscriptions": {
 | 
| +                            "methods": {
 | 
| +                                "list": {
 | 
| +                                    "description": "Lists the name of the subscriptions for this topic.",
 | 
| +                                    "httpMethod": "GET",
 | 
| +                                    "id": "pubsub.projects.topics.subscriptions.list",
 | 
| +                                    "parameterOrder": [
 | 
| +                                        "topic"
 | 
| +                                    ],
 | 
| +                                    "parameters": {
 | 
| +                                        "pageToken": {
 | 
| +                                            "description": "The value returned by the last `ListTopicSubscriptionsResponse`; indicates\nthat this is a continuation of a prior `ListTopicSubscriptions` call, and\nthat the system should return the next page of data.",
 | 
| +                                            "location": "query",
 | 
| +                                            "type": "string"
 | 
| +                                        },
 | 
| +                                        "pageSize": {
 | 
| +                                            "description": "Maximum number of subscription names to return.",
 | 
| +                                            "format": "int32",
 | 
| +                                            "location": "query",
 | 
| +                                            "type": "integer"
 | 
| +                                        },
 | 
| +                                        "topic": {
 | 
| +                                            "description": "The name of the topic that subscriptions are attached to.",
 | 
| +                                            "location": "path",
 | 
| +                                            "pattern": "^projects/[^/]+/topics/[^/]+$",
 | 
| +                                            "required": true,
 | 
| +                                            "type": "string"
 | 
| +                                        }
 | 
| +                                    },
 | 
| +                                    "path": "v1beta2/{+topic}/subscriptions",
 | 
| +                                    "response": {
 | 
| +                                        "$ref": "ListTopicSubscriptionsResponse"
 | 
| +                                    },
 | 
| +                                    "scopes": [
 | 
| +                                        "https://www.googleapis.com/auth/cloud-platform",
 | 
| +                                        "https://www.googleapis.com/auth/pubsub"
 | 
| +                                    ]
 | 
| +                                }
 | 
| +                            }
 | 
| +                        }
 | 
|                      }
 | 
|                  }
 | 
|              }
 | 
| @@ -705,6 +705,29 @@
 | 
|      "revision": "20170502",
 | 
|      "rootUrl": "https://pubsub.googleapis.com/",
 | 
|      "schemas": {
 | 
| +        "ModifyAckDeadlineRequest": {
 | 
| +            "description": "Request for the ModifyAckDeadline method.",
 | 
| +            "id": "ModifyAckDeadlineRequest",
 | 
| +            "properties": {
 | 
| +                "ackDeadlineSeconds": {
 | 
| +                    "description": "The new ack deadline with respect to the time this request was sent to\nthe Pub/Sub system. Must be >= 0. For example, if the value is 10, the new\nack deadline will expire 10 seconds after the `ModifyAckDeadline` call\nwas made. Specifying zero may immediately make the message available for\nanother pull request.",
 | 
| +                    "format": "int32",
 | 
| +                    "type": "integer"
 | 
| +                },
 | 
| +                "ackIds": {
 | 
| +                    "description": "List of acknowledgment IDs.",
 | 
| +                    "items": {
 | 
| +                        "type": "string"
 | 
| +                    },
 | 
| +                    "type": "array"
 | 
| +                },
 | 
| +                "ackId": {
 | 
| +                    "description": "The acknowledgment ID. Either this or ack_ids must be populated, but not\nboth.",
 | 
| +                    "type": "string"
 | 
| +                }
 | 
| +            },
 | 
| +            "type": "object"
 | 
| +        },
 | 
|          "SetIamPolicyRequest": {
 | 
|              "description": "Request message for `SetIamPolicy` method.",
 | 
|              "id": "SetIamPolicyRequest",
 | 
| @@ -716,10 +739,26 @@
 | 
|              },
 | 
|              "type": "object"
 | 
|          },
 | 
| +        "ModifyPushConfigRequest": {
 | 
| +            "description": "Request for the ModifyPushConfig method.",
 | 
| +            "id": "ModifyPushConfigRequest",
 | 
| +            "properties": {
 | 
| +                "pushConfig": {
 | 
| +                    "$ref": "PushConfig",
 | 
| +                    "description": "The push configuration for future deliveries.\n\nAn empty `pushConfig` indicates that the Pub/Sub system should\nstop pushing messages from the given subscription and allow\nmessages to be pulled and acknowledged - effectively pausing\nthe subscription if `Pull` is not called."
 | 
| +                }
 | 
| +            },
 | 
| +            "type": "object"
 | 
| +        },
 | 
|          "PubsubMessage": {
 | 
|              "description": "A message data and its attributes. The message payload must not be empty;\nit must contain either a non-empty data field, or at least one attribute.",
 | 
|              "id": "PubsubMessage",
 | 
|              "properties": {
 | 
| +                "data": {
 | 
| +                    "description": "The message payload. For JSON requests, the value of this field must be\n[base64-encoded](https://tools.ietf.org/html/rfc4648).",
 | 
| +                    "format": "byte",
 | 
| +                    "type": "string"
 | 
| +                },
 | 
|                  "attributes": {
 | 
|                      "additionalProperties": {
 | 
|                          "type": "string"
 | 
| @@ -735,22 +774,6 @@
 | 
|                      "description": "The time at which the message was published, populated by the server when\nit receives the `Publish` call. It must not be populated by the\npublisher in a `Publish` call.",
 | 
|                      "format": "google-datetime",
 | 
|                      "type": "string"
 | 
| -                },
 | 
| -                "data": {
 | 
| -                    "description": "The message payload. For JSON requests, the value of this field must be\n[base64-encoded](https://tools.ietf.org/html/rfc4648).",
 | 
| -                    "format": "byte",
 | 
| -                    "type": "string"
 | 
| -                }
 | 
| -            },
 | 
| -            "type": "object"
 | 
| -        },
 | 
| -        "ModifyPushConfigRequest": {
 | 
| -            "description": "Request for the ModifyPushConfig method.",
 | 
| -            "id": "ModifyPushConfigRequest",
 | 
| -            "properties": {
 | 
| -                "pushConfig": {
 | 
| -                    "$ref": "PushConfig",
 | 
| -                    "description": "The push configuration for future deliveries.\n\nAn empty `pushConfig` indicates that the Pub/Sub system should\nstop pushing messages from the given subscription and allow\nmessages to be pulled and acknowledged - effectively pausing\nthe subscription if `Pull` is not called."
 | 
|                  }
 | 
|              },
 | 
|              "type": "object"
 | 
| @@ -773,6 +796,20 @@
 | 
|              },
 | 
|              "type": "object"
 | 
|          },
 | 
| +        "AcknowledgeRequest": {
 | 
| +            "description": "Request for the Acknowledge method.",
 | 
| +            "id": "AcknowledgeRequest",
 | 
| +            "properties": {
 | 
| +                "ackIds": {
 | 
| +                    "description": "The acknowledgment ID for the messages being acknowledged that was returned\nby the Pub/Sub system in the `Pull` response. Must not be empty.",
 | 
| +                    "items": {
 | 
| +                        "type": "string"
 | 
| +                    },
 | 
| +                    "type": "array"
 | 
| +                }
 | 
| +            },
 | 
| +            "type": "object"
 | 
| +        },
 | 
|          "ListTopicsResponse": {
 | 
|              "description": "Response for the `ListTopics` method.",
 | 
|              "id": "ListTopicsResponse",
 | 
| @@ -797,20 +834,6 @@
 | 
|              "properties": {},
 | 
|              "type": "object"
 | 
|          },
 | 
| -        "AcknowledgeRequest": {
 | 
| -            "description": "Request for the Acknowledge method.",
 | 
| -            "id": "AcknowledgeRequest",
 | 
| -            "properties": {
 | 
| -                "ackIds": {
 | 
| -                    "description": "The acknowledgment ID for the messages being acknowledged that was returned\nby the Pub/Sub system in the `Pull` response. Must not be empty.",
 | 
| -                    "items": {
 | 
| -                        "type": "string"
 | 
| -                    },
 | 
| -                    "type": "array"
 | 
| -                }
 | 
| -            },
 | 
| -            "type": "object"
 | 
| -        },
 | 
|          "ListTopicSubscriptionsResponse": {
 | 
|              "description": "Response for the `ListTopicSubscriptions` method.",
 | 
|              "id": "ListTopicSubscriptionsResponse",
 | 
| @@ -990,30 +1013,6 @@
 | 
|              },
 | 
|              "type": "object"
 | 
|          },
 | 
| -        "Policy": {
 | 
| -            "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n    {\n      \"bindings\": [\n        {\n          \"role\": \"roles/owner\",\n          \"members\": [\n            \"user:mike@example.com\",\n            \"group:admins@example.com\",\n            \"domain:google.com\",\n            \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n          ]\n        },\n        {\n          \"role\": \"roles/viewer\",\n          \"members\": [\"user:sean@example.com\"]\n        }\n      ]\n    }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).",
 | 
| -            "id": "Policy",
 | 
| -            "properties": {
 | 
| -                "bindings": {
 | 
| -                    "description": "Associates a list of `members` to a `role`.\nMultiple `bindings` must not be specified for the same `role`.\n`bindings` with no members will result in an error.",
 | 
| -                    "items": {
 | 
| -                        "$ref": "Binding"
 | 
| -                    },
 | 
| -                    "type": "array"
 | 
| -                },
 | 
| -                "etag": {
 | 
| -                    "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.",
 | 
| -                    "format": "byte",
 | 
| -                    "type": "string"
 | 
| -                },
 | 
| -                "version": {
 | 
| -                    "description": "Version of the `Policy`. The default version is 0.",
 | 
| -                    "format": "int32",
 | 
| -                    "type": "integer"
 | 
| -                }
 | 
| -            },
 | 
| -            "type": "object"
 | 
| -        },
 | 
|          "Topic": {
 | 
|              "description": "A topic resource.",
 | 
|              "id": "Topic",
 | 
| @@ -1025,23 +1024,24 @@
 | 
|              },
 | 
|              "type": "object"
 | 
|          },
 | 
| -        "ModifyAckDeadlineRequest": {
 | 
| -            "description": "Request for the ModifyAckDeadline method.",
 | 
| -            "id": "ModifyAckDeadlineRequest",
 | 
| +        "Policy": {
 | 
| +            "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n    {\n      \"bindings\": [\n        {\n          \"role\": \"roles/owner\",\n          \"members\": [\n            \"user:mike@example.com\",\n            \"group:admins@example.com\",\n            \"domain:google.com\",\n            \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n          ]\n        },\n        {\n          \"role\": \"roles/viewer\",\n          \"members\": [\"user:sean@example.com\"]\n        }\n      ]\n    }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https://cloud.google.com/iam).",
 | 
| +            "id": "Policy",
 | 
|              "properties": {
 | 
| -                "ackId": {
 | 
| -                    "description": "The acknowledgment ID. Either this or ack_ids must be populated, but not\nboth.",
 | 
| +                "etag": {
 | 
| +                    "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.",
 | 
| +                    "format": "byte",
 | 
|                      "type": "string"
 | 
|                  },
 | 
| -                "ackDeadlineSeconds": {
 | 
| -                    "description": "The new ack deadline with respect to the time this request was sent to\nthe Pub/Sub system. Must be >= 0. For example, if the value is 10, the new\nack deadline will expire 10 seconds after the `ModifyAckDeadline` call\nwas made. Specifying zero may immediately make the message available for\nanother pull request.",
 | 
| +                "version": {
 | 
| +                    "description": "Version of the `Policy`. The default version is 0.",
 | 
|                      "format": "int32",
 | 
|                      "type": "integer"
 | 
|                  },
 | 
| -                "ackIds": {
 | 
| -                    "description": "List of acknowledgment IDs.",
 | 
| +                "bindings": {
 | 
| +                    "description": "Associates a list of `members` to a `role`.\nMultiple `bindings` must not be specified for the same `role`.\n`bindings` with no members will result in an error.",
 | 
|                      "items": {
 | 
| -                        "type": "string"
 | 
| +                        "$ref": "Binding"
 | 
|                      },
 | 
|                      "type": "array"
 | 
|                  }
 | 
| 
 |