Skip to content

Commit efd2aea

Browse files
committed
Add API hub product, with resource ApiHubInstance
1 parent 1a28a91 commit efd2aea

File tree

3 files changed

+170
-0
lines changed

3 files changed

+170
-0
lines changed
+140
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# Copyright 2024 Google Inc.
2+
# Licensed under the Apache License, Version 2.0 (the "License");
3+
# you may not use this file except in compliance with the License.
4+
# You may obtain a copy of the License at
5+
#
6+
# http://www.apache.org/licenses/LICENSE-2.0
7+
#
8+
# Unless required by applicable law or agreed to in writing, software
9+
# distributed under the License is distributed on an "AS IS" BASIS,
10+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
# See the License for the specific language governing permissions and
12+
# limitations under the License.
13+
14+
---
15+
name: ApiHubInstance
16+
description: An ApiHubInstance represents the instance resources of the API Hub. Currently, only one ApiHub instance is allowed for each project.
17+
base_url: projects/{{project}}/locations/{{location}}/apiHubInstances
18+
immutable: true
19+
self_link: projects/{{project}}/locations/{{location}}/apiHubInstances/{{api_hub_instance_id}}
20+
create_url: projects/{{project}}/locations/{{location}}/apiHubInstances?apiHubInstanceId={{api_hub_instance_id}}
21+
id_format: projects/{{project}}/locations/{{location}}/apiHubInstances/{{api_hub_instance_id}}
22+
import_format:
23+
- projects/{{project}}/locations/{{location}}/apiHubInstances/{{api_hub_instance_id}}
24+
examples:
25+
- name: apihub_api_hub_instance_basic
26+
primary_resource_id: apihub-instance
27+
vars:
28+
instance_id: test-instance
29+
autogen_async: true
30+
exclude_delete: true
31+
async:
32+
operation:
33+
timeouts:
34+
insert_minutes: 20
35+
update_minutes: 20
36+
delete_minutes: 20
37+
base_url: '{{op_id}}'
38+
actions:
39+
- create
40+
- delete
41+
- update
42+
type: OpAsync
43+
result:
44+
resource_inside_response: true
45+
error: {}
46+
include_project: false
47+
autogen_status: QXBpSHViSW5zdGFuY2U=
48+
parameters:
49+
- name: location
50+
type: String
51+
description: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
52+
immutable: true
53+
url_param_only: true
54+
required: true
55+
- name: apiHubInstanceId
56+
type: String
57+
description: |-
58+
Optional. Identifier to assign to the Api Hub instance. Must be unique within
59+
scope of the parent resource. If the field is not provided,
60+
system generated id will be used.
61+
62+
This value should be 4-40 characters, and valid characters
63+
are `/a-z[0-9]-_/`.
64+
immutable: true
65+
url_param_only: true
66+
required: true
67+
properties:
68+
- name: description
69+
type: String
70+
description: Optional. Description of the ApiHub instance.
71+
- name: name
72+
type: String
73+
description: |-
74+
Identifier. Format:
75+
`projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`.
76+
output: true
77+
- name: createTime
78+
type: String
79+
description: Output only. Creation timestamp.
80+
output: true
81+
- name: updateTime
82+
type: String
83+
description: Output only. Last update timestamp.
84+
output: true
85+
- name: state
86+
type: String
87+
description: |-
88+
Output only. The current state of the ApiHub instance.
89+
Possible values:
90+
STATE_UNSPECIFIED
91+
INACTIVE
92+
CREATING
93+
ACTIVE
94+
UPDATING
95+
DELETING
96+
FAILED
97+
output: true
98+
- name: stateMessage
99+
type: String
100+
description: |-
101+
Output only. Extra information about ApiHub instance state. Currently the message
102+
would be populated when state is `FAILED`.
103+
output: true
104+
- name: config
105+
type: NestedObject
106+
description: Available configurations to provision an ApiHub Instance.
107+
required: true
108+
properties:
109+
- name: encryptionType
110+
type: String
111+
description: |-
112+
Optional. Encryption type for the region. If the encryption type is CMEK, the
113+
cmek_key_name must be provided. If no encryption type is provided,
114+
GMEK will be used.
115+
Possible values:
116+
ENCRYPTION_TYPE_UNSPECIFIED
117+
GMEK
118+
CMEK
119+
- name: cmekKeyName
120+
type: String
121+
description: |-
122+
Optional. The Customer Managed Encryption Key (CMEK) used for data encryption.
123+
The CMEK name should follow the format of
124+
`projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`,
125+
where the location must match the instance location.
126+
If the CMEK is not provided, a GMEK will be created for the instance.
127+
- name: disableSearch
128+
type: Boolean
129+
description: |-
130+
Optional. If true, the search will be disabled for the instance. The default value
131+
is false.
132+
- name: vertexLocation
133+
type: String
134+
description: Optional. The name of the Vertex AI location where the data store is stored.
135+
- name: labels
136+
type: KeyValueLabels
137+
description: |-
138+
Optional. Instance labels to represent user-provided metadata.
139+
Refer to cloud documentation on labels for more details.
140+
https://cloud.google.com/compute/docs/labeling-resources

mmv1/products/apihub/product.yaml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright 2024 Google Inc.
2+
# Licensed under the Apache License, Version 2.0 (the "License");
3+
# you may not use this file except in compliance with the License.
4+
# You may obtain a copy of the License at
5+
#
6+
# http://www.apache.org/licenses/LICENSE-2.0
7+
#
8+
# Unless required by applicable law or agreed to in writing, software
9+
# distributed under the License is distributed on an "AS IS" BASIS,
10+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
# See the License for the specific language governing permissions and
12+
# limitations under the License.
13+
14+
---
15+
name: Apihub
16+
display_name: API hub
17+
scopes:
18+
- https://www.googleapis.com/auth/cloud-platform
19+
versions:
20+
- base_url: https://apihub.googleapis.com/v1/
21+
name: ga
22+
caibaseurl: ""
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
resource "google_apihub_api_hub_instance" "{{$.PrimaryResourceId}}"{
2+
api_hub_instance_id = "{{index $.Vars "instance_id"}}"
3+
location = "us-central1"
4+
config {
5+
encryption_type = "GMEK"
6+
disable_search = true
7+
}
8+
}

0 commit comments

Comments
 (0)