diff --git a/spec.md b/spec.md index 861183cc..70c169bf 100644 --- a/spec.md +++ b/spec.md @@ -334,9 +334,17 @@ $ curl http://username:password@service-broker-url/v2/catalog -H "X-Broker-API-V CLI clients will typically have restrictions on how names, such as service and plan names, will be provided by users. Therefore, this specification -defines a "CLI-friendly" string as a short string that MUST only use lowercase -characters, numbers and hyphens, with no spaces. This will make it easier for -users when they have to type it as an argument on the command line. +defines a "CLI-friendly" string as a short string that MUST only use +alphanumeric characters and hyphens, with no spaces. This will make it easier +for users when they have to type it as an argument on the command line. +For comparison purposes, service and plan names MUST be treated as +case-sensitive strings. + +Note: In previous versions of the specification service and plan names +were not allowed to use uppercase characters. However, this requirement was +not enforced and therefore to ensure backwards compatibility with existing +Service Brokers that might use uppercase characters the specification +as been changed. For backwards compatibility reasons, this specification does not preclude the use of CLI-unfriendly strings that might cause problems for command line @@ -353,7 +361,7 @@ It is therefore RECOMMENDED that implementations avoid such strings. | Response field | Type | Description | | --- | --- | --- | -| name* | string | A CLI-friendly name of the service. MUST only contain lowercase characters, numbers and hyphens (no spaces). MUST be unique across all service objects returned in this response. MUST be a non-empty string. | +| name* | string | A CLI-friendly name of the service. MUST only contain alphanumeric characters and hyphens (no spaces). MUST be unique across all service objects returned in this response. MUST be a non-empty string. | | id* | string | An identifier used to correlate this service in future requests to the Service Broker. This MUST be globally unique. MUST be a non-empty string. Using a GUID is RECOMMENDED. | | description* | string | A short description of the service. MUST be a non-empty string. | | tags | array-of-strings | Tags provide a flexible mechanism to expose a classification, attribute, or base technology of a service, enabling equivalent services to be swapped out without changes to dependent logic in applications, buildpacks, or other services. E.g. mysql, relational, redis, key-value, caching, messaging, amqp. | @@ -389,7 +397,7 @@ how Platforms might expose these values to their users. | Response field | Type | Description | | --- | --- | --- | | id* | string | An identifier used to correlate this plan in future requests to the Service Broker. This MUST be globally unique. MUST be a non-empty string. Using a GUID is RECOMMENDED. | -| name* | string | The CLI-friendly name of the plan. MUST only contain lowercase characters, numbers and hyphens (no spaces). MUST be unique within the service. MUST be a non-empty string. | +| name* | string | The CLI-friendly name of the plan. MUST only contain alphanumeric characters and hyphens (no spaces). MUST be unique within the service. MUST be a non-empty string. | | description* | string | A short description of the plan. MUST be a non-empty string. | | metadata | object | An opaque object of metadata for a Service Plan. Controller treats this as a blob. Note that there are [conventions](profile.md#service-metadata) in existing Service Brokers and controllers for fields that aid in the display of catalog data. | | free | boolean | When false, Service Instances of this plan have a cost. The default is true. |