REST Resource: projects.locations.apis.versions.specs

Resource: ApiSpec

Describes a version of an API in a structured way. ApiSpecs provide formal descriptions that consumers can use to use a version. ApiSpec resources are intended to be fully-resolved descriptions of an ApiVersion. When specs consist of multiple files, these should be bundled together (e.g., in a zip archive) and stored as a unit. Multiple specs can exist to provide representations in different API description formats. Synchronization of these representations would be provided by tooling and background services.

JSON representation
{
  "name": string,
  "filename": string,
  "description": string,
  "revisionId": string,
  "createTime": string,
  "revisionCreateTime": string,
  "revisionUpdateTime": string,
  "mimeType": string,
  "sizeBytes": integer,
  "hash": string,
  "sourceUri": string,
  "contents": string,
  "labels": {
    string: string,
    ...
  },
  "annotations": {
    string: string,
    ...
  }
}
Fields
name

string

Resource name.

filename

string

A possibly-hierarchical name used to refer to the spec from other specs.

description

string

A detailed description.

revisionId

string

Output only. Immutable. The revision ID of the spec. A new revision is committed whenever the spec contents are changed. The format is an 8-character hexadecimal string.

createTime

string (Timestamp format)

Output only. Creation timestamp; when the spec resource was created.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

revisionCreateTime

string (Timestamp format)

Output only. Revision creation timestamp; when the represented revision was created.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

revisionUpdateTime

string (Timestamp format)

Output only. Last update timestamp: when the represented revision was last modified.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

mimeType

string

A style (format) descriptor for this spec that is specified as a Media Type. Possible values include application/vnd.apigee.proto, application/vnd.apigee.openapi, and application/vnd.apigee.graphql, with possible suffixes representing compression types. These hypothetical names are defined in the vendor tree defined in RFC6838 (https://tools.ietf.org/html/rfc6838) and are not final. Content types can specify compression. Currently only GZip compression is supported (indicated with "+gzip").

sizeBytes

integer

Output only. The size of the spec file in bytes. If the spec is gzipped, this is the size of the uncompressed spec.

hash

string

Output only. A SHA-256 hash of the spec's contents. If the spec is gzipped, this is the hash of the uncompressed spec.

sourceUri

string

The original source URI of the spec (if one exists). This is an external location that can be used for reference purposes but which may not be authoritative since this external resource may change after the spec is retrieved.

contents

string (bytes format)

Input only. The contents of the spec. Provided by API callers when specs are created or updated. To access the contents of a spec, use specs.getContents.

A base64-encoded string.

labels

map (key: string, value: string)

Labels attach identifying metadata to resources. Identifying metadata can be used to filter list operations.

Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one resource (System labels are excluded).

See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with apigeeregistry.googleapis.com/ and cannot be changed.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

annotations

map (key: string, value: string)

Annotations attach non-identifying metadata to resources.

Annotation keys and values are less restricted than those of labels, but should be generally used for small values of broad interest. Larger, topic- specific metadata should be stored in Artifacts.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Methods

create

Creates a specified spec.

delete

Removes a specified spec, all revisions, and all child resources (e.g., artifacts).

deleteRevision

Deletes a revision of a spec.

get

Returns a specified spec.

getContents

Returns the contents of a specified spec.

getIamPolicy

Gets the access control policy for a resource.

list

Returns matching specs.

listRevisions

Lists all revisions of a spec.

patch

Used to modify a specified spec.

rollback

Sets the current revision to a specified prior revision.

setIamPolicy

Sets the access control policy on the specified resource.

tagRevision

Adds a tag to a specified revision of a spec.

testIamPermissions

Returns permissions that a caller has on the specified resource.