@@ -18,95 +18,107 @@ The following terminology **should** be used consistently throughout AIPs.
1818
1919### API
2020
21- Application Programming Interface. This can be a local interface (such as
22- a client library) or a Network API (defined below).
21+ Application Programming Interface. This can be a local interface (such as a
22+ client library) or a Network API (defined below).
2323
2424### API Backend
2525
26- A set of servers and related infrastructure that implements the
27- business logic for an API Service. An individual API backend server is often
28- called an API server.
26+ A set of servers and related infrastructure that implements the business logic
27+ for an API Service. An individual API backend server is often called an API
28+ server.
2929
3030### API Consumer
3131
32- The entity that consumes an API Service. For Google APIs, it
33- typically is a Google project that owns the client application or the server
34- resource.
32+ The entity that consumes an API Service. For Google APIs, it typically is a
33+ Google project that owns the client application or the server resource.
3534
3635### API Definition
3736
38- The definition of an API, usually defined in a Protocol Buffer
39- service. An API Definition can be implemented by any number of API Services.
37+ The definition of an API, usually defined in a Protocol Buffer service. An API
38+ Definition can be implemented by any number of API Services.
4039
4140### API Frontend
4241
43- A set of servers plus related infrastructure that provides
44- common functionality across API Services, such as load balancing and
45- authentication. An individual API frontend server is often called an API proxy.
42+ A set of servers plus related infrastructure that provides common functionality
43+ across API Services, such as load balancing and authentication. An individual
44+ API frontend server is often called an API proxy.
4645
47- ** Note:** the API frontend and the API backend may run next to each other or
48- far away from each other. In some cases, they can be compiled into a single
46+ ** Note:** the API frontend and the API backend may run next to each other or far
47+ away from each other. In some cases, they can be compiled into a single
4948application binary and run inside a single process.
5049
5150### API Method
5251
53- An individual operation within an API. It is typically represented
54- in Protocol Buffers by an ` rpc ` definition, and is mapped to a function in the
55- API in most programming languages.
52+ An individual operation within an API. It is typically represented in Protocol
53+ Buffers by an ` rpc ` definition, and is mapped to a function in the API in most
54+ programming languages.
5655
5756### API Producer
5857
59- The entity that produces an API Service. For Google APIs, it
60- typically is a Google team responsible for the API Service.
58+ The entity that produces an API Service. For Google APIs, it typically is a
59+ Google team responsible for the API Service.
6160
6261### API Product
6362
64- An API Service and its related components, such as Terms of
65- Service, documentation, client libraries, and service support, are collectively
66- presented to customers as a API Product. For example, Google Calendar API.
63+ An API Service and its related components, such as Terms of Service,
64+ documentation, client libraries, and service support, are collectively presented
65+ to customers as a API Product. For example, Google Calendar API.
6766
6867** Note:** people sometimes refer to an API Product simply as an API.
6968
7069### API Service
7170
72- A deployed implementation of one or more APIs, exposed on one or
73- more network addresses, such as the Cloud Pub/Sub API.
71+ A deployed implementation of one or more APIs, exposed on one or more network
72+ addresses, such as the Cloud Pub/Sub API.
7473
7574### API Service Definition
7675
77- The combination of API Definitions (` .proto ` files)
78- and API Service configurations (` .yaml ` files) used to define an API Service.
79- The schema for Google API Service Definition is ` google.api.Service ` .
76+ The combination of API Definitions (` .proto ` files) and API Service
77+ configurations (` .yaml ` files) used to define an API Service. The schema for
78+ Google API Service Definition is ` google.api.Service ` .
8079
8180### API Service Endpoint
8281
83- Refers to a network address that an API Service uses to
84- handle incoming API Requests. One API Service may have multiple API Service
85- Endpoints, such as ` https://pubsub.googleapis.com ` and
86- ` https://content-pubsub.googleapis.com ` .
82+ Refers to a network address that an API Service uses to handle incoming API
83+ Requests. One API Service may have multiple API Service Endpoints, such as
84+ ` https://pubsub.googleapis.com ` and ` https://content-pubsub.googleapis.com ` .
8785
8886### API Service Name
8987
90- Refers to the logical identifier of an API Service. Google
91- APIs use RFC 1035 DNS compatible names as their API Service Names, such as
92- ` pubsub.googleapis.com ` .
88+ Refers to the logical identifier of an API Service. Google APIs use RFC 1035 DNS
89+ compatible names as their API Service Names, such as ` pubsub.googleapis.com ` .
9390
9491### API Request
9592
96- A single invocation of an API Method. It is often used as the
97- unit for billing, logging, monitoring, and rate limiting.
93+ A single invocation of an API Method. It is often used as the unit for billing,
94+ logging, monitoring, and rate limiting.
9895
9996### API Version
10097
101- The version of an API or a group of APIs if they are defined
102- together. An API Version is often represented by a string, such as "v1", and
103- presents in API requests and Protocol Buffers package names.
98+ The version of an API or a group of APIs if they are defined together. An API
99+ Version is often represented by a string, such as "v1", and presents in API
100+ requests and Protocol Buffers package names.
101+
102+ ### Client
103+
104+ Clients are programs that perform a specific tasks by calling an API or generic
105+ tools, such as CLIs, that expose the API in a user-accessible fashion or operate
106+ on resource data at rest.
107+
108+ Examples of clients include the following:
109+
110+ - Command line interfaces
111+ - Libraries, such as an SDK for a particular programming language
112+ - Scripts that operates on a JSON representation of a resource after reading it
113+ from an API
114+ - Tools, such as an [ IaC] [ ] client
115+ - Visual UIs, such as a web application
104116
105117### Google API
106118
107- A Network API exposed by a Google service. Most of these are
108- hosted on the ` googleapis.com ` domain. It does not include other types of APIs,
109- such as client libraries and SDKs.
119+ A Network API exposed by a Google service. Most of these are hosted on the
120+ ` googleapis.com ` domain. It does not include other types of APIs, such as client
121+ libraries and SDKs.
110122
111123### IaC
112124
@@ -117,17 +129,25 @@ desired state.
117129
118130Examples of complexities that IaC clients abstract away include:
119131
120- - Determing the appropriate imperative action (create / update / delete) to achieve desired state.
132+ - Determing the appropriate imperative action (create / update / delete) to
133+ achieve desired state.
121134- Ordering of these imperative actions.
122135
123136[ Terraform] [ ] is an example of such a client.
124137
138+ ### User
139+
140+ A human being which is using an API directly, such as with cURL. This term is
141+ defined to differentiate usage in the AIPs between a human * user* and a
142+ programmatic * client* .
143+
125144### Network API
126145
127- An API that operates across a network of computers. Network APIs
128- communicate using network protocols including HTTP, and are frequently produced
129- by organizations separate from those that consume them.
146+ An API that operates across a network of computers. Network APIs communicate
147+ using network protocols including HTTP, and are frequently produced by
148+ organizations separate from those that consume them.
130149
150+ [ IaC ] : #iac
131151[ Terraform ] : https://www.terraform.io/
132152
133153## Changelog
0 commit comments