Clean and regen docs (#401)

diff --git a/docs/dyn/compute_v1.instanceTemplates.html b/docs/dyn/compute_v1.instanceTemplates.html
index 005319f..32fe5df 100644
--- a/docs/dyn/compute_v1.instanceTemplates.html
+++ b/docs/dyn/compute_v1.instanceTemplates.html
@@ -165,16 +165,6 @@
       "id": "A String", # [Output Only] A unique identifier for this instance template. The server defines this identifier.
       "creationTimestamp": "A String", # [Output Only] The creation timestamp for this instance template in RFC3339 text format.
       "properties": { # The instance properties for this instance template.
-        "machineType": "A String", # The machine type to use for instances that are created from this template.
-        "description": "A String", # An optional text description for the instances that are created from this instance template.
-        "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
-          "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
-            "A String",
-          ],
-          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-              #
-              # To see the latest fingerprint, make get() request to the instance.
-        },
         "disks": [ # An array of disks that are associated with the instances that are created from this template.
           { # An instance-attached disk resource.
             "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -250,12 +240,27 @@
                 # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
           },
         ],
+        "machineType": "A String", # The machine type to use for instances that are created from this template.
+        "description": "A String", # An optional text description for the instances that are created from this instance template.
+        "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
+          "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
+            "A String",
+          ],
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+              #
+              # To see the latest fingerprint, make get() request to the instance.
+        },
+        "labels": { # Labels to apply to instances that are created from this template.
+          "a_key": "A String",
+        },
         "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
           "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-          "preemptible": True or False, # Whether the instance is preemptible.
+              #
+              # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+          "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
           "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
         },
-        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
+        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
         "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
           { # A service account.
             "scopes": [ # The list of scopes to be made available for this service account.
@@ -264,16 +269,6 @@
             "email": "A String", # Email address of the service account.
           },
         ],
-        "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
-          "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-            {
-              "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-              "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-            },
-          ],
-          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-        },
         "networkInterfaces": [ # An array of network access configurations for this interface.
           { # A network interface resource attached to an instance.
             "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -289,7 +284,7 @@
               { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                 "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                "name": "A String", # Name of this access configuration.
+                "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                 "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
               },
             ],
@@ -300,6 +295,16 @@
             "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
+        "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
+          "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+            {
+              "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+              "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+            },
+          ],
+          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        },
       },
       "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -321,16 +326,6 @@
     "id": "A String", # [Output Only] A unique identifier for this instance template. The server defines this identifier.
     "creationTimestamp": "A String", # [Output Only] The creation timestamp for this instance template in RFC3339 text format.
     "properties": { # The instance properties for this instance template.
-      "machineType": "A String", # The machine type to use for instances that are created from this template.
-      "description": "A String", # An optional text description for the instances that are created from this instance template.
-      "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
-        "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
-          "A String",
-        ],
-        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-            #
-            # To see the latest fingerprint, make get() request to the instance.
-      },
       "disks": [ # An array of disks that are associated with the instances that are created from this template.
         { # An instance-attached disk resource.
           "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -406,12 +401,27 @@
               # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
         },
       ],
+      "machineType": "A String", # The machine type to use for instances that are created from this template.
+      "description": "A String", # An optional text description for the instances that are created from this instance template.
+      "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
+        "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
+          "A String",
+        ],
+        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+            #
+            # To see the latest fingerprint, make get() request to the instance.
+      },
+      "labels": { # Labels to apply to instances that are created from this template.
+        "a_key": "A String",
+      },
       "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
         "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-        "preemptible": True or False, # Whether the instance is preemptible.
+            #
+            # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+        "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
         "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
       },
-      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
+      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
       "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
         { # A service account.
           "scopes": [ # The list of scopes to be made available for this service account.
@@ -420,16 +430,6 @@
           "email": "A String", # Email address of the service account.
         },
       ],
-      "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
-        "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-          {
-            "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-            "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-          },
-        ],
-        "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-      },
       "networkInterfaces": [ # An array of network access configurations for this interface.
         { # A network interface resource attached to an instance.
           "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -445,7 +445,7 @@
             { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
               "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
               "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-              "name": "A String", # Name of this access configuration.
+              "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
               "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
             },
           ],
@@ -456,6 +456,16 @@
           "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         },
       ],
+      "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
+        "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+          {
+            "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+            "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+          },
+        ],
+        "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+      },
     },
     "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -547,16 +557,6 @@
           "id": "A String", # [Output Only] A unique identifier for this instance template. The server defines this identifier.
           "creationTimestamp": "A String", # [Output Only] The creation timestamp for this instance template in RFC3339 text format.
           "properties": { # The instance properties for this instance template.
-            "machineType": "A String", # The machine type to use for instances that are created from this template.
-            "description": "A String", # An optional text description for the instances that are created from this instance template.
-            "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
-              "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
-                "A String",
-              ],
-              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-                  #
-                  # To see the latest fingerprint, make get() request to the instance.
-            },
             "disks": [ # An array of disks that are associated with the instances that are created from this template.
               { # An instance-attached disk resource.
                 "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -632,12 +632,27 @@
                     # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
               },
             ],
+            "machineType": "A String", # The machine type to use for instances that are created from this template.
+            "description": "A String", # An optional text description for the instances that are created from this instance template.
+            "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
+              "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
+                "A String",
+              ],
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+                  #
+                  # To see the latest fingerprint, make get() request to the instance.
+            },
+            "labels": { # Labels to apply to instances that are created from this template.
+              "a_key": "A String",
+            },
             "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
               "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-              "preemptible": True or False, # Whether the instance is preemptible.
+                  #
+                  # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+              "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
               "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
             },
-            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
+            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
             "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
               { # A service account.
                 "scopes": [ # The list of scopes to be made available for this service account.
@@ -646,16 +661,6 @@
                 "email": "A String", # Email address of the service account.
               },
             ],
-            "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
-              "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-                {
-                  "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-                  "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-                },
-              ],
-              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-            },
             "networkInterfaces": [ # An array of network access configurations for this interface.
               { # A network interface resource attached to an instance.
                 "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -671,7 +676,7 @@
                   { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                     "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                    "name": "A String", # Name of this access configuration.
+                    "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                     "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
                   },
                 ],
@@ -682,6 +687,16 @@
                 "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
+            "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
+              "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+                {
+                  "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+                  "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+                },
+              ],
+              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+            },
           },
           "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
           "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.