Skip to content

Commit 21e6a58

Browse files
authored
feat!: generate with microgenerator (#49)
See UPGRADING.md for details.
1 parent 52b3040 commit 21e6a58

9 files changed

+270
-197
lines changed

securitycenter/snippets/snippets_findings.py

Lines changed: 107 additions & 78 deletions
Large diffs are not rendered by default.

securitycenter/snippets/snippets_findings_test.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ def source_name(organization_id):
3535
org_name = "organizations/{org_id}".format(org_id=organization_id)
3636

3737
source = client.create_source(
38-
org_name,
39-
{
40-
"display_name": "Unit test source",
41-
"description": "A new custom source that does X",
42-
},
38+
request={
39+
"parent": org_name,
40+
"source": {
41+
"display_name": "Unit test source",
42+
"description": "A new custom source that does X",
43+
},
44+
}
4345
)
4446
return source.name
4547

securitycenter/snippets/snippets_list_assets.py

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def list_all_assets(organization_id):
2929
org_name = "organizations/{org_id}".format(org_id=organization_id)
3030

3131
# Call the API and print results.
32-
asset_iterator = client.list_assets(org_name)
32+
asset_iterator = client.list_assets(request={"parent": org_name})
3333
for i, asset_result in enumerate(asset_iterator):
3434
print(i, asset_result)
3535
# [END demo_list_all_assets]
@@ -53,7 +53,9 @@ def list_assets_with_filters(organization_id):
5353
+ '"google.cloud.resourcemanager.Project"'
5454
)
5555
# Call the API and print results.
56-
asset_iterator = client.list_assets(org_name, filter_=project_filter)
56+
asset_iterator = client.list_assets(
57+
request={"parent": org_name, "filter": project_filter}
58+
)
5759
for i, asset_result in enumerate(asset_iterator):
5860
print(i, asset_result)
5961
# [END demo_list_assets_with_filter]
@@ -66,8 +68,6 @@ def list_assets_with_filters_and_read_time(organization_id):
6668
# [START demo_list_assets_with_filter_and_time]
6769
from datetime import datetime, timedelta
6870

69-
from google.protobuf.timestamp_pb2 import Timestamp
70-
7171
from google.cloud import securitycenter
7272

7373
client = securitycenter.SecurityCenterClient()
@@ -83,12 +83,14 @@ def list_assets_with_filters_and_read_time(organization_id):
8383

8484
# Lists assets as of yesterday.
8585
read_time = datetime.utcnow() - timedelta(days=1)
86-
timestamp_proto = Timestamp()
87-
timestamp_proto.FromDatetime(read_time)
8886

8987
# Call the API and print results.
9088
asset_iterator = client.list_assets(
91-
org_name, filter_=project_filter, read_time=timestamp_proto
89+
request={
90+
"parent": org_name,
91+
"filter": project_filter,
92+
"read_time": read_time,
93+
}
9294
)
9395
for i, asset_result in enumerate(asset_iterator):
9496
print(i, asset_result)
@@ -102,7 +104,6 @@ def list_point_in_time_changes(organization_id):
102104
# [START demo_list_assets_changes]
103105
from datetime import timedelta
104106

105-
from google.protobuf.duration_pb2 import Duration
106107
from google.cloud import securitycenter
107108

108109
client = securitycenter.SecurityCenterClient()
@@ -117,12 +118,14 @@ def list_point_in_time_changes(organization_id):
117118

118119
# List assets and their state change the last 30 days
119120
compare_delta = timedelta(days=30)
120-
# Convert the timedelta to a Duration
121-
duration_proto = Duration()
122-
duration_proto.FromTimedelta(compare_delta)
121+
123122
# Call the API and print results.
124123
asset_iterator = client.list_assets(
125-
org_name, filter_=project_filter, compare_duration=duration_proto
124+
request={
125+
"parent": org_name,
126+
"filter": project_filter,
127+
"compare_duration": compare_delta,
128+
}
126129
)
127130
for i, asset in enumerate(asset_iterator):
128131
print(i, asset)
@@ -145,7 +148,9 @@ def group_assets(organization_id):
145148

146149
group_by_type = "security_center_properties.resource_type"
147150

148-
result_iterator = client.group_assets(org_name, group_by=group_by_type)
151+
result_iterator = client.group_assets(
152+
request={"parent": org_name, "group_by": group_by_type}
153+
)
149154
for i, result in enumerate(result_iterator):
150155
print((i + 1), result)
151156
# [END group_all_assets]
@@ -170,7 +175,7 @@ def group_filtered_assets(organization_id):
170175
+ '"google.cloud.resourcemanager.Project"'
171176
)
172177
result_iterator = client.group_assets(
173-
org_name, group_by=group_by_type, filter_=only_projects
178+
request={"parent": org_name, "group_by": group_by_type, "filter": only_projects}
174179
)
175180
for i, result in enumerate(result_iterator):
176181
print((i + 1), result)
@@ -186,18 +191,20 @@ def group_assets_by_changes(organization_id):
186191
from datetime import timedelta
187192

188193
from google.cloud import securitycenter
189-
from google.protobuf.duration_pb2 import Duration
190194

191195
client = securitycenter.SecurityCenterClient()
192196

193-
duration_proto = Duration()
194-
duration_proto.FromTimedelta(timedelta(days=5))
197+
duration = timedelta(days=5)
195198

196199
# organization_id is the numeric ID of the organization.
197200
# organization_id = "1234567777"
198201
org_name = "organizations/{org_id}".format(org_id=organization_id)
199202
result_iterator = client.group_assets(
200-
org_name, group_by="state_change", compare_duration=duration_proto
203+
request={
204+
"parent": org_name,
205+
"group_by": "state_change",
206+
"compare_duration": duration,
207+
}
201208
)
202209
for i, result in enumerate(result_iterator):
203210
print((i + 1), result)

securitycenter/snippets/snippets_notification_configs.py

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,15 @@ def create_notification_config(organization_id, notification_config_id, pubsub_t
3131
org_name = "organizations/{org_id}".format(org_id=organization_id)
3232

3333
created_notification_config = client.create_notification_config(
34-
org_name,
35-
notification_config_id,
36-
{
37-
"description": "Notification for active findings",
38-
"pubsub_topic": pubsub_topic,
39-
"streaming_config": {"filter": 'state = "ACTIVE"'},
40-
},
34+
request={
35+
"parent": org_name,
36+
"config_id": notification_config_id,
37+
"notification_config": {
38+
"description": "Notification for active findings",
39+
"pubsub_topic": pubsub_topic,
40+
"streaming_config": {"filter": 'state = "ACTIVE"'},
41+
},
42+
}
4143
)
4244

4345
print(created_notification_config)
@@ -59,7 +61,7 @@ def delete_notification_config(organization_id, notification_config_id):
5961
org_id=organization_id, config_id=notification_config_id
6062
)
6163

62-
client.delete_notification_config(notification_config_name)
64+
client.delete_notification_config(request={"name": notification_config_name})
6365
print("Deleted notification config: {}".format(notification_config_name))
6466
# [END scc_delete_notification_config]
6567
return True
@@ -79,7 +81,9 @@ def get_notification_config(organization_id, notification_config_id):
7981
org_id=organization_id, config_id=notification_config_id
8082
)
8183

82-
notification_config = client.get_notification_config(notification_config_name)
84+
notification_config = client.get_notification_config(
85+
request={"name": notification_config_name}
86+
)
8387
print("Got notification config: {}".format(notification_config))
8488
# [END scc_get_notification_config]
8589
return notification_config
@@ -95,7 +99,9 @@ def list_notification_configs(organization_id):
9599
# TODO: organization_id = "your-org-id"
96100
org_name = "organizations/{org_id}".format(org_id=organization_id)
97101

98-
notification_configs_iterator = client.list_notification_configs(org_name)
102+
notification_configs_iterator = client.list_notification_configs(
103+
request={"parent": org_name}
104+
)
99105
for i, config in enumerate(notification_configs_iterator):
100106
print("{}: notification_config: {}".format(i, config))
101107
# [END scc_list_notification_configs]
@@ -128,13 +134,15 @@ def update_notification_config(organization_id, notification_config_id, pubsub_t
128134
)
129135

130136
updated_notification_config = client.update_notification_config(
131-
{
132-
"name": notification_config_name,
133-
"description": updated_description,
134-
"pubsub_topic": pubsub_topic,
135-
"streaming_config": {"filter": updated_filter},
136-
},
137-
update_mask=field_mask,
137+
request={
138+
"notification_config": {
139+
"name": notification_config_name,
140+
"description": updated_description,
141+
"pubsub_topic": pubsub_topic,
142+
"streaming_config": {"filter": updated_filter},
143+
},
144+
"update_mask": field_mask,
145+
}
138146
)
139147

140148
print(updated_notification_config)

securitycenter/snippets/snippets_notification_receiver.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,15 @@ def receive_notifications(project_id, subscription_name):
2222
import concurrent
2323

2424
from google.cloud import pubsub_v1
25-
from google.cloud.securitycenter_v1.proto.notification_message_pb2 import (
26-
NotificationMessage,
27-
)
28-
from google.protobuf import json_format
25+
from google.cloud.securitycenter_v1 import NotificationMessage
2926

3027
# TODO: project_id = "your-project-id"
3128
# TODO: subscription_name = "your-subscription-name"
3229

3330
def callback(message):
3431
print("Received message")
3532

36-
notification_msg = NotificationMessage()
37-
json_format.Parse(message.data, notification_msg)
33+
notification_msg = NotificationMessage.from_json(message.data)
3834

3935
print(
4036
"Notification config name: {}".format(

securitycenter/snippets/snippets_notification_test.py

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def cleanup_notification_config(notification_config_id):
4141
notification_config_name = "organizations/{org_id}/notificationConfigs/{config_id}".format(
4242
org_id=ORG_ID, config_id=notification_config_id
4343
)
44-
client.delete_notification_config(notification_config_name)
44+
client.delete_notification_config(request={"name": notification_config_name})
4545

4646

4747
@pytest.fixture
@@ -51,13 +51,15 @@ def new_notification_config_for_update():
5151
org_name = "organizations/{org_id}".format(org_id=ORG_ID)
5252

5353
created_notification_config = client.create_notification_config(
54-
org_name,
55-
UPDATE_CONFIG_ID,
56-
{
57-
"description": "Notification for active findings",
58-
"pubsub_topic": PUBSUB_TOPIC,
59-
"streaming_config": {"filter": ""},
60-
},
54+
request={
55+
"parent": org_name,
56+
"config_id": UPDATE_CONFIG_ID,
57+
"notification_config": {
58+
"description": "Notification for active findings",
59+
"pubsub_topic": PUBSUB_TOPIC,
60+
"streaming_config": {"filter": ""},
61+
},
62+
}
6163
)
6264
yield created_notification_config
6365
cleanup_notification_config(UPDATE_CONFIG_ID)
@@ -70,13 +72,15 @@ def new_notification_config_for_get():
7072
org_name = "organizations/{org_id}".format(org_id=ORG_ID)
7173

7274
created_notification_config = client.create_notification_config(
73-
org_name,
74-
GET_CONFIG_ID,
75-
{
76-
"description": "Notification for active findings",
77-
"pubsub_topic": PUBSUB_TOPIC,
78-
"streaming_config": {"filter": ""},
79-
},
75+
request={
76+
"parent": org_name,
77+
"config_id": GET_CONFIG_ID,
78+
"notification_config": {
79+
"description": "Notification for active findings",
80+
"pubsub_topic": PUBSUB_TOPIC,
81+
"streaming_config": {"filter": ""},
82+
},
83+
}
8084
)
8185
yield created_notification_config
8286
cleanup_notification_config(GET_CONFIG_ID)
@@ -89,13 +93,15 @@ def deleted_notification_config():
8993
org_name = "organizations/{org_id}".format(org_id=ORG_ID)
9094

9195
created_notification_config = client.create_notification_config(
92-
org_name,
93-
DELETE_CONFIG_ID,
94-
{
95-
"description": "Notification for active findings",
96-
"pubsub_topic": PUBSUB_TOPIC,
97-
"streaming_config": {"filter": ""},
98-
},
96+
request={
97+
"parent": org_name,
98+
"config_id": DELETE_CONFIG_ID,
99+
"notification_config": {
100+
"description": "Notification for active findings",
101+
"pubsub_topic": PUBSUB_TOPIC,
102+
"streaming_config": {"filter": ""},
103+
},
104+
}
99105
)
100106
return created_notification_config
101107

@@ -110,10 +116,8 @@ def test_create_notification_config():
110116

111117

112118
def test_delete_notification_config(deleted_notification_config):
113-
assert (
114-
snippets_notification_configs.delete_notification_config(
115-
ORG_ID, DELETE_CONFIG_ID
116-
)
119+
assert snippets_notification_configs.delete_notification_config(
120+
ORG_ID, DELETE_CONFIG_ID
117121
)
118122

119123

@@ -137,8 +141,6 @@ def test_update_notification_config(new_notification_config_for_update):
137141

138142

139143
def test_receive_notifications():
140-
assert (
141-
snippets_notification_receiver.receive_notifications(
142-
PROJECT_ID, PUBSUB_SUBSCRIPTION
143-
)
144+
assert snippets_notification_receiver.receive_notifications(
145+
PROJECT_ID, PUBSUB_SUBSCRIPTION
144146
)

securitycenter/snippets/snippets_orgs.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def get_settings(organization_id):
2727

2828
org_settings_name = client.organization_settings_path(organization_id)
2929

30-
org_settings = client.get_organization_settings(org_settings_name)
30+
org_settings = client.get_organization_settings(request={"name": org_settings_name})
3131
print(org_settings)
3232
# [END get_org_settings]
3333

@@ -50,8 +50,13 @@ def update_asset_discovery_org_settings(organization_id):
5050
field_mask = field_mask_pb2.FieldMask(paths=["enable_asset_discovery"])
5151
# Call the service.
5252
updated = client.update_organization_settings(
53-
{"name": org_settings_name, "enable_asset_discovery": True},
54-
update_mask=field_mask,
53+
request={
54+
"organization_settings": {
55+
"name": org_settings_name,
56+
"enable_asset_discovery": True,
57+
},
58+
"update_mask": field_mask,
59+
}
5560
)
5661
print("Asset Discovery Enabled? {}".format(updated.enable_asset_discovery))
5762
# [END update_org_settings]

0 commit comments

Comments
 (0)