all: autogenerated update (2018-04-04)

Update:
- androidmanagement/v1
- firebasedynamiclinks/v1
- partners/v2
- sheets/v4
- slides/v1
diff --git a/androidmanagement/v1/androidmanagement-api.json b/androidmanagement/v1/androidmanagement-api.json
index b4cae61..e2ad2f1 100644
--- a/androidmanagement/v1/androidmanagement-api.json
+++ b/androidmanagement/v1/androidmanagement-api.json
@@ -766,7 +766,7 @@
       }
     }
   },
-  "revision": "20180320",
+  "revision": "20180326",
   "rootUrl": "https://androidmanagement.googleapis.com/",
   "schemas": {
     "AlwaysOnVpnPackage": {
@@ -2472,7 +2472,7 @@
           "type": "boolean"
         },
         "usbMassStorageEnabled": {
-          "description": "Allows admins to toggle whether USB storge is enabled or disabled on user's devices. Next ID: 113",
+          "description": "Allows admins to toggle whether USB storge is enabled or disabled on user's devices. Next ID: 114",
           "type": "boolean"
         },
         "version": {
diff --git a/androidmanagement/v1/androidmanagement-gen.go b/androidmanagement/v1/androidmanagement-gen.go
index 3a6b663..acca49b 100644
--- a/androidmanagement/v1/androidmanagement-gen.go
+++ b/androidmanagement/v1/androidmanagement-gen.go
@@ -2281,7 +2281,7 @@
 	UsbFileTransferDisabled bool `json:"usbFileTransferDisabled,omitempty"`
 
 	// UsbMassStorageEnabled: Allows admins to toggle whether USB storge is
-	// enabled or disabled on user's devices. Next ID: 113
+	// enabled or disabled on user's devices. Next ID: 114
 	UsbMassStorageEnabled bool `json:"usbMassStorageEnabled,omitempty"`
 
 	// Version: The version of the policy. This is a read-only field. The
diff --git a/api-list.json b/api-list.json
index bc49687..27b4148 100644
--- a/api-list.json
+++ b/api-list.json
@@ -1848,7 +1848,7 @@
    "id": "ml:v1",
    "name": "ml",
    "version": "v1",
-   "title": "Google Cloud Machine Learning Engine",
+   "title": "Cloud Machine Learning Engine",
    "description": "An API to enable creating and using machine learning models.",
    "discoveryRestUrl": "https://ml.googleapis.com/$discovery/rest?version=v1",
    "icons": {
@@ -2852,7 +2852,7 @@
    "name": "texttospeech",
    "version": "v1beta1",
    "title": "Cloud Text-to-Speech API",
-   "description": "Cloud Text-to-Speech API.",
+   "description": "Synthesizes natural-sounding speech by applying powerful neural network models.",
    "discoveryRestUrl": "https://texttospeech.googleapis.com/$discovery/rest?version=v1beta1",
    "icons": {
     "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
diff --git a/firebasedynamiclinks/v1/firebasedynamiclinks-api.json b/firebasedynamiclinks/v1/firebasedynamiclinks-api.json
index cfc4a97..d01b067 100644
--- a/firebasedynamiclinks/v1/firebasedynamiclinks-api.json
+++ b/firebasedynamiclinks/v1/firebasedynamiclinks-api.json
@@ -114,6 +114,28 @@
   },
   "protocol": "rest",
   "resources": {
+    "managedShortLinks": {
+      "methods": {
+        "create": {
+          "description": "Creates a managed short Dynamic Link given either a valid long Dynamic Link\nor details such as Dynamic Link domain, Android and iOS app information.\nThe created short Dynamic Link will not expire.\n\nThis differs from CreateShortDynamicLink in the following ways:\n  - The request will also contain a name for the link (non unique name\n    for the front end).\n  - The response must be authenticated with an auth token (generated with\n    the admin service account).\n  - The link will appear in the FDL list of links in the console front end.\n\nThe Dynamic Link domain in the request must be owned by requester's\nFirebase project.",
+          "flatPath": "v1/managedShortLinks:create",
+          "httpMethod": "POST",
+          "id": "firebasedynamiclinks.managedShortLinks.create",
+          "parameterOrder": [],
+          "parameters": {},
+          "path": "v1/managedShortLinks:create",
+          "request": {
+            "$ref": "CreateManagedShortLinkRequest"
+          },
+          "response": {
+            "$ref": "CreateManagedShortLinkResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/firebase"
+          ]
+        }
+      }
+    },
     "shortLinks": {
       "methods": {
         "create": {
@@ -189,7 +211,7 @@
       }
     }
   },
-  "revision": "20180303",
+  "revision": "20180403",
   "rootUrl": "https://firebasedynamiclinks-ipv6.googleapis.com/",
   "schemas": {
     "AnalyticsInfo": {
@@ -230,6 +252,51 @@
       },
       "type": "object"
     },
+    "CreateManagedShortLinkRequest": {
+      "description": "Request to create a managed Short Dynamic Link.",
+      "id": "CreateManagedShortLinkRequest",
+      "properties": {
+        "dynamicLinkInfo": {
+          "$ref": "DynamicLinkInfo",
+          "description": "Information about the Dynamic Link to be shortened.\n[Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener)."
+        },
+        "longDynamicLink": {
+          "description": "Full long Dynamic Link URL with desired query parameters specified.\nFor example,\n\"https://sample.app.goo.gl/?link=http://www.google.com\u0026apn=com.sample\",\n[Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener).",
+          "type": "string"
+        },
+        "name": {
+          "description": "Link name to associate with the link. It's used for marketer to identify\nmanually-created links in the Firebase console\n(https://console.firebase.google.com/).\nLinks must be named to be tracked.",
+          "type": "string"
+        },
+        "suffix": {
+          "$ref": "Suffix",
+          "description": "Short Dynamic Link suffix. Optional."
+        }
+      },
+      "type": "object"
+    },
+    "CreateManagedShortLinkResponse": {
+      "description": "Response to create a short Dynamic Link.",
+      "id": "CreateManagedShortLinkResponse",
+      "properties": {
+        "managedShortLink": {
+          "$ref": "ManagedShortLink",
+          "description": "Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz"
+        },
+        "previewLink": {
+          "description": "Preview link to show the link flow chart. (debug info.)",
+          "type": "string"
+        },
+        "warning": {
+          "description": "Information about potential warnings on link creation.",
+          "items": {
+            "$ref": "DynamicLinkWarning"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
     "CreateShortDynamicLinkRequest": {
       "description": "Request to create a short Dynamic Link.",
       "id": "CreateShortDynamicLinkRequest",
@@ -254,7 +321,7 @@
       "id": "CreateShortDynamicLinkResponse",
       "properties": {
         "previewLink": {
-          "description": "Preivew link to show the link flow chart.",
+          "description": "Preview link to show the link flow chart. (debug info.)",
           "type": "string"
         },
         "shortLink": {
@@ -383,6 +450,10 @@
           "$ref": "DesktopInfo",
           "description": "Desktop related information. See desktop related parameters in the\n[documentation](https://firebase.google.com/docs/dynamic-links/create-manually)."
         },
+        "domainUriPrefix": {
+          "description": "E.g. https://maps.app.goo.gl, https://maps.page.link, https://g.co/maps\nMore examples can be found in description of getNormalizedUriPrefix in\nj/c/g/firebase/dynamiclinks/uri/DdlDomain.java",
+          "type": "string"
+        },
         "dynamicLinkDomain": {
           "description": "Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl\n[Learn more](https://firebase.google.com/docs/dynamic-links/android/receive)\non how to set up Dynamic Link domain associated with your Firebase project.\n\nRequired.",
           "type": "string"
@@ -719,6 +790,61 @@
       },
       "type": "object"
     },
+    "ManagedShortLink": {
+      "description": "Managed Short Link.",
+      "id": "ManagedShortLink",
+      "properties": {
+        "creationTime": {
+          "description": "Creation timestamp of the short link.",
+          "format": "google-datetime",
+          "type": "string"
+        },
+        "flaggedAttribute": {
+          "description": "Attributes that have been flagged about this short url.",
+          "enumDescriptions": [
+            "Indicates that no attributes were found for this short url.",
+            "Indicates that short url has been flagged by AbuseIAm team as spam."
+          ],
+          "items": {
+            "enum": [
+              "UNSPECIFIED_ATTRIBUTE",
+              "SPAM"
+            ],
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "info": {
+          "$ref": "DynamicLinkInfo",
+          "description": "Full Dyamic Link info"
+        },
+        "link": {
+          "description": "Short durable link url, for example, \"https://sample.app.goo.gl/xyz123\".\n\nRequired.",
+          "type": "string"
+        },
+        "linkName": {
+          "description": "Link name defined by the creator.\n\nRequired.",
+          "type": "string"
+        },
+        "visibility": {
+          "description": "Visibility status of link.",
+          "enum": [
+            "UNSPECIFIED_VISIBILITY",
+            "UNARCHIVED",
+            "ARCHIVED",
+            "NEVER_SHOWN"
+          ],
+          "enumDescriptions": [
+            "Visibility of the link is not specified.",
+            "Link created in console and should be shown in console.",
+            "Link created in console and should not be shown in console (but can\nbe shown in the console again if it is unarchived).",
+            "Link created outside of console and should never be shown in console."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "NavigationInfo": {
       "description": "Information of navigation behavior.",
       "id": "NavigationInfo",
@@ -753,17 +879,23 @@
       "description": "Short Dynamic Link suffix.",
       "id": "Suffix",
       "properties": {
+        "customSuffix": {
+          "description": "Only applies to Option.CUSTOM.",
+          "type": "string"
+        },
         "option": {
           "description": "Suffix option.",
           "enum": [
             "OPTION_UNSPECIFIED",
             "UNGUESSABLE",
-            "SHORT"
+            "SHORT",
+            "CUSTOM"
           ],
           "enumDescriptions": [
-            "The suffix option is not specified, performs as NOT_GUESSABLE .",
+            "The suffix option is not specified, performs as UNGUESSABLE .",
             "Short Dynamic Link suffix is a base62 [0-9A-Za-z] encoded string of\na random generated 96 bit random number, which has a length of 17 chars.\nFor example, \"nlAR8U4SlKRZw1cb2\".\nIt prevents other people from guessing and crawling short Dynamic Links\nthat contain personal identifiable information.",
-            "Short Dynamic Link suffix is a base62 [0-9A-Za-z] string starting with a\nlength of 4 chars. the length will increase when all the space is\noccupied."
+            "Short Dynamic Link suffix is a base62 [0-9A-Za-z] string starting with a\nlength of 4 chars. the length will increase when all the space is\noccupied.",
+            "Custom DDL suffix is a client specified string, for example,\n\"buy2get1free\".\nNOTE: custom suffix should only be available to managed short link\ncreation"
           ],
           "type": "string"
         }
diff --git a/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go b/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
index 5a517b9..e4ac2cd 100644
--- a/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
+++ b/firebasedynamiclinks/v1/firebasedynamiclinks-gen.go
@@ -56,6 +56,7 @@
 		return nil, errors.New("client is nil")
 	}
 	s := &Service{client: client, BasePath: basePath}
+	s.ManagedShortLinks = NewManagedShortLinksService(s)
 	s.ShortLinks = NewShortLinksService(s)
 	s.V1 = NewV1Service(s)
 	return s, nil
@@ -66,6 +67,8 @@
 	BasePath  string // API endpoint base URL
 	UserAgent string // optional additional User-Agent fragment
 
+	ManagedShortLinks *ManagedShortLinksService
+
 	ShortLinks *ShortLinksService
 
 	V1 *V1Service
@@ -78,6 +81,15 @@
 	return googleapi.UserAgent + " " + s.UserAgent
 }
 
+func NewManagedShortLinksService(s *Service) *ManagedShortLinksService {
+	rs := &ManagedShortLinksService{s: s}
+	return rs
+}
+
+type ManagedShortLinksService struct {
+	s *Service
+}
+
 func NewShortLinksService(s *Service) *ShortLinksService {
 	rs := &ShortLinksService{s: s}
 	return rs
@@ -170,6 +182,103 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// CreateManagedShortLinkRequest: Request to create a managed Short
+// Dynamic Link.
+type CreateManagedShortLinkRequest struct {
+	// DynamicLinkInfo: Information about the Dynamic Link to be
+	// shortened.
+	// [Learn
+	// more](https://firebase.google.com/docs/reference/dynamic-links/link-sh
+	// ortener).
+	DynamicLinkInfo *DynamicLinkInfo `json:"dynamicLinkInfo,omitempty"`
+
+	// LongDynamicLink: Full long Dynamic Link URL with desired query
+	// parameters specified.
+	// For
+	// example,
+	// "https://sample.app.goo.gl/?link=http://www.google.com&apn=co
+	// m.sample",
+	// [Learn
+	// more](https://firebase.google.com/docs/reference/dynamic-links/link-sh
+	// ortener).
+	LongDynamicLink string `json:"longDynamicLink,omitempty"`
+
+	// Name: Link name to associate with the link. It's used for marketer to
+	// identify
+	// manually-created links in the Firebase
+	// console
+	// (https://console.firebase.google.com/).
+	// Links must be named to be tracked.
+	Name string `json:"name,omitempty"`
+
+	// Suffix: Short Dynamic Link suffix. Optional.
+	Suffix *Suffix `json:"suffix,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "DynamicLinkInfo") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "DynamicLinkInfo") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *CreateManagedShortLinkRequest) MarshalJSON() ([]byte, error) {
+	type NoMethod CreateManagedShortLinkRequest
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
+// CreateManagedShortLinkResponse: Response to create a short Dynamic
+// Link.
+type CreateManagedShortLinkResponse struct {
+	// ManagedShortLink: Short Dynamic Link value. e.g.
+	// https://abcd.app.goo.gl/wxyz
+	ManagedShortLink *ManagedShortLink `json:"managedShortLink,omitempty"`
+
+	// PreviewLink: Preview link to show the link flow chart. (debug info.)
+	PreviewLink string `json:"previewLink,omitempty"`
+
+	// Warning: Information about potential warnings on link creation.
+	Warning []*DynamicLinkWarning `json:"warning,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the
+	// server.
+	googleapi.ServerResponse `json:"-"`
+
+	// ForceSendFields is a list of field names (e.g. "ManagedShortLink") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "ManagedShortLink") to
+	// include in API requests with the JSON null value. By default, fields
+	// with empty values are omitted from API requests. However, any field
+	// with an empty value appearing in NullFields will be sent to the
+	// server as null. It is an error if a field in this list has a
+	// non-empty value. This may be used to include null fields in Patch
+	// requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *CreateManagedShortLinkResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod CreateManagedShortLinkResponse
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // CreateShortDynamicLinkRequest: Request to create a short Dynamic
 // Link.
 type CreateShortDynamicLinkRequest struct {
@@ -221,7 +330,7 @@
 // CreateShortDynamicLinkResponse: Response to create a short Dynamic
 // Link.
 type CreateShortDynamicLinkResponse struct {
-	// PreviewLink: Preivew link to show the link flow chart.
+	// PreviewLink: Preview link to show the link flow chart. (debug info.)
 	PreviewLink string `json:"previewLink,omitempty"`
 
 	// ShortLink: Short Dynamic Link value. e.g.
@@ -422,6 +531,13 @@
 	// ate-manually).
 	DesktopInfo *DesktopInfo `json:"desktopInfo,omitempty"`
 
+	// DomainUriPrefix: E.g. https://maps.app.goo.gl,
+	// https://maps.page.link, https://g.co/maps
+	// More examples can be found in description of getNormalizedUriPrefix
+	// in
+	// j/c/g/firebase/dynamiclinks/uri/DdlDomain.java
+	DomainUriPrefix string `json:"domainUriPrefix,omitempty"`
+
 	// DynamicLinkDomain: Dynamic Links domain that the project owns, e.g.
 	// abcd.app.goo.gl
 	// [Learn
@@ -954,6 +1070,71 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// ManagedShortLink: Managed Short Link.
+type ManagedShortLink struct {
+	// CreationTime: Creation timestamp of the short link.
+	CreationTime string `json:"creationTime,omitempty"`
+
+	// FlaggedAttribute: Attributes that have been flagged about this short
+	// url.
+	//
+	// Possible values:
+	//   "UNSPECIFIED_ATTRIBUTE" - Indicates that no attributes were found
+	// for this short url.
+	//   "SPAM" - Indicates that short url has been flagged by AbuseIAm team
+	// as spam.
+	FlaggedAttribute []string `json:"flaggedAttribute,omitempty"`
+
+	// Info: Full Dyamic Link info
+	Info *DynamicLinkInfo `json:"info,omitempty"`
+
+	// Link: Short durable link url, for example,
+	// "https://sample.app.goo.gl/xyz123".
+	//
+	// Required.
+	Link string `json:"link,omitempty"`
+
+	// LinkName: Link name defined by the creator.
+	//
+	// Required.
+	LinkName string `json:"linkName,omitempty"`
+
+	// Visibility: Visibility status of link.
+	//
+	// Possible values:
+	//   "UNSPECIFIED_VISIBILITY" - Visibility of the link is not specified.
+	//   "UNARCHIVED" - Link created in console and should be shown in
+	// console.
+	//   "ARCHIVED" - Link created in console and should not be shown in
+	// console (but can
+	// be shown in the console again if it is unarchived).
+	//   "NEVER_SHOWN" - Link created outside of console and should never be
+	// shown in console.
+	Visibility string `json:"visibility,omitempty"`
+
+	// ForceSendFields is a list of field names (e.g. "CreationTime") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
+	ForceSendFields []string `json:"-"`
+
+	// NullFields is a list of field names (e.g. "CreationTime") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
+	NullFields []string `json:"-"`
+}
+
+func (s *ManagedShortLink) MarshalJSON() ([]byte, error) {
+	type NoMethod ManagedShortLink
+	raw := NoMethod(*s)
+	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
+}
+
 // NavigationInfo: Information of navigation behavior.
 type NavigationInfo struct {
 	// EnableForcedRedirect: If this option is on, FDL click will be forced
@@ -1024,11 +1205,14 @@
 
 // Suffix: Short Dynamic Link suffix.
 type Suffix struct {
+	// CustomSuffix: Only applies to Option.CUSTOM.
+	CustomSuffix string `json:"customSuffix,omitempty"`
+
 	// Option: Suffix option.
 	//
 	// Possible values:
 	//   "OPTION_UNSPECIFIED" - The suffix option is not specified, performs
-	// as NOT_GUESSABLE .
+	// as UNGUESSABLE .
 	//   "UNGUESSABLE" - Short Dynamic Link suffix is a base62 [0-9A-Za-z]
 	// encoded string of
 	// a random generated 96 bit random number, which has a length of 17
@@ -1042,9 +1226,15 @@
 	// length of 4 chars. the length will increase when all the space
 	// is
 	// occupied.
+	//   "CUSTOM" - Custom DDL suffix is a client specified string, for
+	// example,
+	// "buy2get1free".
+	// NOTE: custom suffix should only be available to managed short
+	// link
+	// creation
 	Option string `json:"option,omitempty"`
 
-	// ForceSendFields is a list of field names (e.g. "Option") to
+	// ForceSendFields is a list of field names (e.g. "CustomSuffix") to
 	// unconditionally include in API requests. By default, fields with
 	// empty values are omitted from API requests. However, any non-pointer,
 	// non-interface field appearing in ForceSendFields will be sent to the
@@ -1052,10 +1242,10 @@
 	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g. "Option") to include in API
-	// requests with the JSON null value. By default, fields with empty
-	// values are omitted from API requests. However, any field with an
-	// empty value appearing in NullFields will be sent to the server as
+	// NullFields is a list of field names (e.g. "CustomSuffix") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
 	// null. It is an error if a field in this list has a non-empty value.
 	// This may be used to include null fields in Patch requests.
 	NullFields []string `json:"-"`
@@ -1067,6 +1257,144 @@
 	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
 }
 
+// method id "firebasedynamiclinks.managedShortLinks.create":
+
+type ManagedShortLinksCreateCall struct {
+	s                             *Service
+	createmanagedshortlinkrequest *CreateManagedShortLinkRequest
+	urlParams_                    gensupport.URLParams
+	ctx_                          context.Context
+	header_                       http.Header
+}
+
+// Create: Creates a managed short Dynamic Link given either a valid
+// long Dynamic Link
+// or details such as Dynamic Link domain, Android and iOS app
+// information.
+// The created short Dynamic Link will not expire.
+//
+// This differs from CreateShortDynamicLink in the following ways:
+//   - The request will also contain a name for the link (non unique
+// name
+//     for the front end).
+//   - The response must be authenticated with an auth token (generated
+// with
+//     the admin service account).
+//   - The link will appear in the FDL list of links in the console
+// front end.
+//
+// The Dynamic Link domain in the request must be owned by
+// requester's
+// Firebase project.
+func (r *ManagedShortLinksService) Create(createmanagedshortlinkrequest *CreateManagedShortLinkRequest) *ManagedShortLinksCreateCall {
+	c := &ManagedShortLinksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	c.createmanagedshortlinkrequest = createmanagedshortlinkrequest
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
+// for more information.
+func (c *ManagedShortLinksCreateCall) Fields(s ...googleapi.Field) *ManagedShortLinksCreateCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method. Any
+// pending HTTP request will be aborted if the provided context is
+// canceled.
+func (c *ManagedShortLinksCreateCall) Context(ctx context.Context) *ManagedShortLinksCreateCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns an http.Header that can be modified by the caller to
+// add HTTP headers to the request.
+func (c *ManagedShortLinksCreateCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *ManagedShortLinksCreateCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := make(http.Header)
+	for k, v := range c.header_ {
+		reqHeaders[k] = v
+	}
+	reqHeaders.Set("User-Agent", c.s.userAgent())
+	var body io.Reader = nil
+	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createmanagedshortlinkrequest)
+	if err != nil {
+		return nil, err
+	}
+	reqHeaders.Set("Content-Type", "application/json")
+	c.urlParams_.Set("alt", alt)
+	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/managedShortLinks:create")
+	urls += "?" + c.urlParams_.Encode()
+	req, _ := http.NewRequest("POST", urls, body)
+	req.Header = reqHeaders
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "firebasedynamiclinks.managedShortLinks.create" call.
+// Exactly one of *CreateManagedShortLinkResponse or error will be
+// non-nil. Any non-2xx status code is an error. Response headers are in
+// either *CreateManagedShortLinkResponse.ServerResponse.Header or (if a
+// response was returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was
+// because http.StatusNotModified was returned.
+func (c *ManagedShortLinksCreateCall) Do(opts ...googleapi.CallOption) (*CreateManagedShortLinkResponse, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, &googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		}
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, err
+	}
+	ret := &CreateManagedShortLinkResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+	// {
+	//   "description": "Creates a managed short Dynamic Link given either a valid long Dynamic Link\nor details such as Dynamic Link domain, Android and iOS app information.\nThe created short Dynamic Link will not expire.\n\nThis differs from CreateShortDynamicLink in the following ways:\n  - The request will also contain a name for the link (non unique name\n    for the front end).\n  - The response must be authenticated with an auth token (generated with\n    the admin service account).\n  - The link will appear in the FDL list of links in the console front end.\n\nThe Dynamic Link domain in the request must be owned by requester's\nFirebase project.",
+	//   "flatPath": "v1/managedShortLinks:create",
+	//   "httpMethod": "POST",
+	//   "id": "firebasedynamiclinks.managedShortLinks.create",
+	//   "parameterOrder": [],
+	//   "parameters": {},
+	//   "path": "v1/managedShortLinks:create",
+	//   "request": {
+	//     "$ref": "CreateManagedShortLinkRequest"
+	//   },
+	//   "response": {
+	//     "$ref": "CreateManagedShortLinkResponse"
+	//   },
+	//   "scopes": [
+	//     "https://www.googleapis.com/auth/firebase"
+	//   ]
+	// }
+
+}
+
 // method id "firebasedynamiclinks.shortLinks.create":
 
 type ShortLinksCreateCall struct {
diff --git a/partners/v2/partners-api.json b/partners/v2/partners-api.json
index 8c3dc6f..2f2c1a9 100644
--- a/partners/v2/partners-api.json
+++ b/partners/v2/partners-api.json
@@ -1172,7 +1172,7 @@
       }
     }
   },
-  "revision": "20180202",
+  "revision": "20180403",
   "rootUrl": "https://partners.googleapis.com/",
   "schemas": {
     "AdWordsManagerAccountInfo": {
@@ -1940,7 +1940,7 @@
           "type": "integer"
         },
         "month": {
-          "description": "Month of year. Must be from 1 to 12.",
+          "description": "Month of year. Must be from 1 to 12, or 0 if specifying a date without a\nmonth.",
           "format": "int32",
           "type": "integer"
         },
@@ -3360,6 +3360,10 @@
       "description": "A resource representing a user of the Partners platform.",
       "id": "User",
       "properties": {
+        "afaInfoShared": {
+          "description": "Whether or not the user has opted to share their Academy for Ads info with\nGoogle Partners.",
+          "type": "boolean"
+        },
         "availableAdwordsManagerAccounts": {
           "description": "This is the list of AdWords Manager Accounts the user has edit access to.\nIf the user has edit access to multiple accounts, the user can choose the\npreferred account and we use this when a personal account is needed. Can\nbe empty meaning the user has access to no accounts.\n@OutputOnly",
           "items": {
diff --git a/partners/v2/partners-gen.go b/partners/v2/partners-gen.go
index 863216b..0cb7bb9 100644
--- a/partners/v2/partners-gen.go
+++ b/partners/v2/partners-gen.go
@@ -1030,7 +1030,9 @@
 	// if specifying a year/month where the day is not significant.
 	Day int64 `json:"day,omitempty"`
 
-	// Month: Month of year. Must be from 1 to 12.
+	// Month: Month of year. Must be from 1 to 12, or 0 if specifying a date
+	// without a
+	// month.
 	Month int64 `json:"month,omitempty"`
 
 	// Year: Year of date. Must be from 1 to 9999, or 0 if specifying a date
@@ -2872,6 +2874,11 @@
 
 // User: A resource representing a user of the Partners platform.
 type User struct {
+	// AfaInfoShared: Whether or not the user has opted to share their
+	// Academy for Ads info with
+	// Google Partners.
+	AfaInfoShared bool `json:"afaInfoShared,omitempty"`
+
 	// AvailableAdwordsManagerAccounts: This is the list of AdWords Manager
 	// Accounts the user has edit access to.
 	// If the user has edit access to multiple accounts, the user can choose
@@ -2932,22 +2939,20 @@
 	// server.
 	googleapi.ServerResponse `json:"-"`
 
-	// ForceSendFields is a list of field names (e.g.
-	// "AvailableAdwordsManagerAccounts") to unconditionally include in API
-	// requests. By default, fields with empty values are omitted from API
-	// requests. However, any non-pointer, non-interface field appearing in
-	// ForceSendFields will be sent to the server regardless of whether the
-	// field is empty or not. This may be used to include empty fields in
-	// Patch requests.
+	// ForceSendFields is a list of field names (e.g. "AfaInfoShared") to
+	// unconditionally include in API requests. By default, fields with
+	// empty values are omitted from API requests. However, any non-pointer,
+	// non-interface field appearing in ForceSendFields will be sent to the
+	// server regardless of whether the field is empty or not. This may be
+	// used to include empty fields in Patch requests.
 	ForceSendFields []string `json:"-"`
 
-	// NullFields is a list of field names (e.g.
-	// "AvailableAdwordsManagerAccounts") to include in API requests with
-	// the JSON null value. By default, fields with empty values are omitted
-	// from API requests. However, any field with an empty value appearing
-	// in NullFields will be sent to the server as null. It is an error if a
-	// field in this list has a non-empty value. This may be used to include
-	// null fields in Patch requests.
+	// NullFields is a list of field names (e.g. "AfaInfoShared") to include
+	// in API requests with the JSON null value. By default, fields with
+	// empty values are omitted from API requests. However, any field with
+	// an empty value appearing in NullFields will be sent to the server as
+	// null. It is an error if a field in this list has a non-empty value.
+	// This may be used to include null fields in Patch requests.
 	NullFields []string `json:"-"`
 }
 
diff --git a/sheets/v4/sheets-api.json b/sheets/v4/sheets-api.json
index 92bae3a..3cb49be 100644
--- a/sheets/v4/sheets-api.json
+++ b/sheets/v4/sheets-api.json
@@ -819,7 +819,7 @@
       }
     }
   },
-  "revision": "20180313",
+  "revision": "20180329",
   "rootUrl": "https://sheets.googleapis.com/",
   "schemas": {
     "AddBandingRequest": {
@@ -1830,7 +1830,7 @@
             "The cell's value must be outside the dates of the two condition values.\nSupported by data validation.\nRequires exactly two ConditionValues.",
             "The cell's value must be a date.\nSupported by data validation.\nRequires no ConditionValues.",
             "The cell's value must be listed in the grid in condition value's range.\nSupported by data validation.\nRequires a single ConditionValue,\nand the value must be a valid range in A1 notation.",
-            "The cell's value must in the list of condition values.\nSupported by data validation.\nSupports any number of condition values,\none per item in the list.\nFormulas are not supported in the values.",
+            "The cell's value must be in the list of condition values.\nSupported by data validation.\nSupports any number of condition values,\none per item in the list.\nFormulas are not supported in the values.",
             "The cell's value must be empty.\nSupported by conditional formatting and filters.\nRequires no ConditionValues.",
             "The cell's value must not be empty.\nSupported by conditional formatting and filters.\nRequires no ConditionValues.",
             "The condition's formula must evaluate to true.\nSupported by data validation, conditional formatting and filters.\nRequires a single ConditionValue."
@@ -2239,7 +2239,7 @@
       "id": "ChartSourceRange",
       "properties": {
         "sources": {
-          "description": "The ranges of data for a series or domain.\nExactly one dimension must have a length of 1,\nand all sources in the list must have the same dimension\nwith length 1.\nThe domain (if it exists) \u0026 all series must have the same number\nof source ranges. If using more than one source range, then the source\nrange at a given offset must be contiguous across the domain and series.\n\nFor example, these are valid configurations:\n\n    domain sources: A1:A5\n    series1 sources: B1:B5\n    series2 sources: D6:D10\n\n    domain sources: A1:A5, C10:C12\n    series1 sources: B1:B5, D10:D12\n    series2 sources: C1:C5, E10:E12",
+          "description": "The ranges of data for a series or domain.\nExactly one dimension must have a length of 1,\nand all sources in the list must have the same dimension\nwith length 1.\nThe domain (if it exists) \u0026 all series must have the same number\nof source ranges. If using more than one source range, then the source\nrange at a given offset must be in order and contiguous across the domain\nand series.\n\nFor example, these are valid configurations:\n\n    domain sources: A1:A5\n    series1 sources: B1:B5\n    series2 sources: D6:D10\n\n    domain sources: A1:A5, C10:C12\n    series1 sources: B1:B5, D10:D12\n    series2 sources: C1:C5, E10:E12",
           "items": {
             "$ref": "GridRange"
           },
@@ -2432,7 +2432,7 @@
           "type": "string"
         },
         "userEnteredValue": {
-          "description": "A value the condition is based on.\nThe value will be parsed as if the user typed into a cell.\nFormulas are supported (and must begin with an `=`).",
+          "description": "A value the condition is based on.\nThe value will be parsed as if the user typed into a cell.\nFormulas are supported (and must begin with an `=` or a '+').",
           "type": "string"
         }
       },
@@ -3564,17 +3564,17 @@
       "id": "HistogramRule",
       "properties": {
         "end": {
-          "description": "Optional. The maximum value at which items will be placed into buckets\nof constant size. Values above end will be lumped into a single bucket.",
+          "description": "The maximum value at which items will be placed into buckets\nof constant size. Values above end will be lumped into a single bucket.\nThis field is optional.",
           "format": "double",
           "type": "number"
         },
         "interval": {
-          "description": "Required. The size of the buckets that will be created. Must be positive.",
+          "description": "The size of the buckets that will be created. Must be positive.",
           "format": "double",
           "type": "number"
         },
         "start": {
-          "description": "Optional. The minimum value at which items will be placed into buckets\nof constant size. Values below start will be lumped into a single bucket.",
+          "description": "The minimum value at which items will be placed into buckets\nof constant size. Values below start will be lumped into a single bucket.\nThis field is optional.",
           "format": "double",
           "type": "number"
         }
@@ -5697,7 +5697,7 @@
           "type": "string"
         },
         "subtotalIndex": {
-          "description": "The 0-based index of a data point within the series. If\ndata_is_subtotal is true, the data point at this index is the\nsubtotal. Otherwise, the subtotal appears after the data point with\nthis index. A series can have multiple subtotals at arbitrary indices,\nbut subtotals do not affect the indices of the data points. For\nexample, if a series has 3 data points, their indices will always be 0,\n1, and 2, regardless of how many subtotals exist on the series or what\ndata points they are associated with.",
+          "description": "The 0-based index of a data point within the series. If\ndata_is_subtotal is true, the data point at this index is the\nsubtotal. Otherwise, the subtotal appears after the data point with\nthis index. A series can have multiple subtotals at arbitrary indices,\nbut subtotals do not affect the indices of the data points. For\nexample, if a series has three data points, their indices will always\nbe 0, 1, and 2, regardless of how many subtotals exist on the series or\nwhat data points they are associated with.",
           "format": "int32",
           "type": "integer"
         }
diff --git a/sheets/v4/sheets-gen.go b/sheets/v4/sheets-gen.go
index 1a97613..bea8eeb 100644
--- a/sheets/v4/sheets-gen.go
+++ b/sheets/v4/sheets-gen.go
@@ -2075,7 +2075,7 @@
 	// Supported by data validation.
 	// Requires a single ConditionValue,
 	// and the value must be a valid range in A1 notation.
-	//   "ONE_OF_LIST" - The cell's value must in the list of condition
+	//   "ONE_OF_LIST" - The cell's value must be in the list of condition
 	// values.
 	// Supported by data validation.
 	// Supports any number of condition values,
@@ -2778,8 +2778,9 @@
 	// The domain (if it exists) & all series must have the same number
 	// of source ranges. If using more than one source range, then the
 	// source
-	// range at a given offset must be contiguous across the domain and
-	// series.
+	// range at a given offset must be in order and contiguous across the
+	// domain
+	// and series.
 	//
 	// For example, these are valid configurations:
 	//
@@ -3221,7 +3222,7 @@
 
 	// UserEnteredValue: A value the condition is based on.
 	// The value will be parsed as if the user typed into a cell.
-	// Formulas are supported (and must begin with an `=`).
+	// Formulas are supported (and must begin with an `=` or a '+').
 	UserEnteredValue string `json:"userEnteredValue,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "RelativeDate") to
@@ -5313,20 +5314,21 @@
 //     | Grand Total |            $29.12 |
 //     +-------------+-------------------+
 type HistogramRule struct {
-	// End: Optional. The maximum value at which items will be placed into
-	// buckets
+	// End: The maximum value at which items will be placed into buckets
 	// of constant size. Values above end will be lumped into a single
 	// bucket.
+	// This field is optional.
 	End float64 `json:"end,omitempty"`
 
-	// Interval: Required. The size of the buckets that will be created.
-	// Must be positive.
+	// Interval: The size of the buckets that will be created. Must be
+	// positive.
 	Interval float64 `json:"interval,omitempty"`
 
-	// Start: Optional. The minimum value at which items will be placed into
+	// Start: The minimum value at which items will be placed into
 	// buckets
 	// of constant size. Values below start will be lumped into a single
 	// bucket.
+	// This field is optional.
 	Start float64 `json:"start,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "End") to
@@ -8967,11 +8969,11 @@
 	// indices,
 	// but subtotals do not affect the indices of the data points.
 	// For
-	// example, if a series has 3 data points, their indices will always be
-	// 0,
-	// 1, and 2, regardless of how many subtotals exist on the series or
-	// what
-	// data points they are associated with.
+	// example, if a series has three data points, their indices will
+	// always
+	// be 0, 1, and 2, regardless of how many subtotals exist on the series
+	// or
+	// what data points they are associated with.
 	SubtotalIndex int64 `json:"subtotalIndex,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "DataIsSubtotal") to
diff --git a/slides/v1/slides-api.json b/slides/v1/slides-api.json
index dab840b..b7efa76 100644
--- a/slides/v1/slides-api.json
+++ b/slides/v1/slides-api.json
@@ -311,7 +311,7 @@
       }
     }
   },
-  "revision": "20180312",
+  "revision": "20180402",
   "rootUrl": "https://slides.googleapis.com/",
   "schemas": {
     "AffineTransform": {
@@ -504,7 +504,7 @@
           "type": "string"
         },
         "url": {
-          "description": "The image URL.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at most 2 kB in length.",
+          "description": "The image URL.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at most 2 kB in length. The URL itself is saved\nwith the image, and exposed via the Image.source_url field.",
           "type": "string"
         }
       },
@@ -939,7 +939,7 @@
       "type": "object"
     },
     "CreateSheetsChartRequest": {
-      "description": "Creates an embedded Google Sheets chart.\n\nNOTE: Chart creation requires at least one of the spreadsheets.readonly,\nspreadsheets, drive.readonly, or drive OAuth scopes.",
+      "description": "Creates an embedded Google Sheets chart.\n\nNOTE: Chart creation requires at least one of the spreadsheets.readonly,\nspreadsheets, drive.readonly, drive.file, or drive OAuth scopes.",
       "id": "CreateSheetsChartRequest",
       "properties": {
         "chartId": {
@@ -1525,7 +1525,7 @@
       "type": "object"
     },
     "Line": {
-      "description": "A PageElement kind representing a\nline, curved connector, or bent connector.",
+      "description": "A PageElement kind representing a\nnon-connector line, straight connector, curved connector or bent connector.",
       "id": "Line",
       "properties": {
         "lineProperties": {
@@ -1544,7 +1544,8 @@
             "CURVED_CONNECTOR_2",
             "CURVED_CONNECTOR_3",
             "CURVED_CONNECTOR_4",
-            "CURVED_CONNECTOR_5"
+            "CURVED_CONNECTOR_5",
+            "STRAIGHT_LINE"
           ],
           "enumDescriptions": [
             "An unspecified line type.",
@@ -1556,7 +1557,8 @@
             "Curved connector 2 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector2'.",
             "Curved connector 3 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector3'.",
             "Curved connector 4 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector4'.",
-            "Curved connector 5 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector5'."
+            "Curved connector 5 form. Corresponds to ECMA-376 ST_ShapeType\n'curvedConnector5'.",
+            "Straight line. Corresponds to ECMA-376 ST_ShapeType 'line'. This line\ntype is not a connector."
           ],
           "type": "string"
         }
@@ -2429,7 +2431,7 @@
           "type": "string"
         },
         "imageUrl": {
-          "description": "The image URL.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at most 2 kB in length.",
+          "description": "The image URL.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at most 2 kB in length. The URL itself is saved\nwith the image, and exposed via the Image.source_url field.",
           "type": "string"
         },
         "pageObjectIds": {
@@ -2574,7 +2576,7 @@
           "type": "string"
         },
         "url": {
-          "description": "The URL of the new image.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at most 2 kB in length.",
+          "description": "The URL of the new image.\n\nThe image is fetched once at insertion time and a copy is stored for\ndisplay inside the presentation. Images must be less than 50MB in size,\ncannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF\nformat.\n\nThe provided URL can be at most 2 kB in length. The URL itself is saved\nwith the image, and exposed via the Image.source_url field.",
           "type": "string"
         }
       },
diff --git a/slides/v1/slides-gen.go b/slides/v1/slides-gen.go
index e01fc71..526d290 100644
--- a/slides/v1/slides-gen.go
+++ b/slides/v1/slides-gen.go
@@ -487,7 +487,9 @@
 	// GIF
 	// format.
 	//
-	// The provided URL can be at most 2 kB in length.
+	// The provided URL can be at most 2 kB in length. The URL itself is
+	// saved
+	// with the image, and exposed via the Image.source_url field.
 	Url string `json:"url,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ElementProperties")
@@ -1136,7 +1138,7 @@
 //
 // NOTE: Chart creation requires at least one of the
 // spreadsheets.readonly,
-// spreadsheets, drive.readonly, or drive OAuth scopes.
+// spreadsheets, drive.readonly, drive.file, or drive OAuth scopes.
 type CreateSheetsChartRequest struct {
 	// ChartId: The ID of the specific chart in the Google Sheets
 	// spreadsheet.
@@ -2543,7 +2545,8 @@
 }
 
 // Line: A PageElement kind representing a
-// line, curved connector, or bent connector.
+// non-connector line, straight connector, curved connector or bent
+// connector.
 type Line struct {
 	// LineProperties: The properties of the line.
 	LineProperties *LineProperties `json:"lineProperties,omitempty"`
@@ -2579,6 +2582,9 @@
 	//   "CURVED_CONNECTOR_5" - Curved connector 5 form. Corresponds to
 	// ECMA-376 ST_ShapeType
 	// 'curvedConnector5'.
+	//   "STRAIGHT_LINE" - Straight line. Corresponds to ECMA-376
+	// ST_ShapeType 'line'. This line
+	// type is not a connector.
 	LineType string `json:"lineType,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "LineProperties") to
@@ -4096,7 +4102,9 @@
 	// GIF
 	// format.
 	//
-	// The provided URL can be at most 2 kB in length.
+	// The provided URL can be at most 2 kB in length. The URL itself is
+	// saved
+	// with the image, and exposed via the Image.source_url field.
 	ImageUrl string `json:"imageUrl,omitempty"`
 
 	// PageObjectIds: If non-empty, limits the matches to page elements only
@@ -4393,7 +4401,9 @@
 	// GIF
 	// format.
 	//
-	// The provided URL can be at most 2 kB in length.
+	// The provided URL can be at most 2 kB in length. The URL itself is
+	// saved
+	// with the image, and exposed via the Image.source_url field.
 	Url string `json:"url,omitempty"`
 
 	// ForceSendFields is a list of field names (e.g. "ImageObjectId") to
diff --git a/texttospeech/v1beta1/texttospeech-api.json b/texttospeech/v1beta1/texttospeech-api.json
index ddd702c..9b7c196 100644
--- a/texttospeech/v1beta1/texttospeech-api.json
+++ b/texttospeech/v1beta1/texttospeech-api.json
@@ -12,7 +12,7 @@
   "baseUrl": "https://texttospeech.googleapis.com/",
   "batchPath": "batch",
   "canonicalName": "Texttospeech",
-  "description": "Cloud Text-to-Speech API.",
+  "description": "Synthesizes natural-sounding speech by applying powerful neural network models.",
   "discoveryVersion": "v1",
   "documentationLink": "http://cloud.google.com/speech/text-to-speech/",
   "fullyEncodeReservedExpansion": true,
@@ -163,7 +163,7 @@
       }
     }
   },
-  "revision": "20180323",
+  "revision": "20180330",
   "rootUrl": "https://texttospeech.googleapis.com/",
   "schemas": {
     "AudioConfig": {