in analytics-hub/snippets/create_listing_golang/main.go [450:513]
func main() {
flags := parse_args()
ctx := context.Background()
client, err := analyticshub.NewClient(ctx)
if err != nil {
println(err)
}
defer client.Close()
bqClient, err := bigquery.NewClient(ctx, flags.project_id)
if err != nil {
println(fmt.Errorf("bigquery.NewClient: %v", err))
}
defer bqClient.Close()
println("Creating Data Exchange")
list_exchanges(ctx, client, flags.project_id, flags.location)
exchg, err := create_or_get_exchange(ctx, client, flags.project_id, flags.location, flags.exchange_id, false)
if err == nil {
println(fmt.Sprintf("Exchange: [%s] %s", exchg.Name, exchg.DisplayName))
listing, err := create_or_get_listing(ctx, client, flags.project_id, flags.location, flags.exchange_id, flags.listing_id, flags.restrict_egress, flags.shared_ds)
if err == nil {
println(fmt.Sprintf("Listing: [%s] %s", listing.Name, listing.DisplayName))
println("GetIamPolicy before setIamPolicy")
policy, err := listing_get_iam_policy(ctx, client, listing.Name)
if err == nil {
print_iam_policy(policy)
listing_add_iam_policy_member(ctx, client, listing.Name, "roles/analyticshub.subscriber", flags.subscriber_iam_member)
listing_add_iam_policy_member(ctx, client, listing.Name, "roles/analyticshub.viewer", flags.subscription_viewer_iam_member)
println("GetIamPolicy after setIamPolicy")
policy, err := listing_get_iam_policy(ctx, client, listing.Name)
if err == nil {
print_iam_policy(policy)
}
}
}
}
println("\nCreating Data Clean Room")
exchgDCR, err := create_or_get_exchange(ctx, client, flags.project_id, flags.location, flags.dcr_exchange_id, true)
if err == nil {
println(fmt.Sprintf("Exchange(DCR): [%s] %s", exchgDCR.Name, exchgDCR.DisplayName))
println("Creating BigQuery view with analysis rules")
create_bq_view_with_analysis_rules(ctx, bqClient, flags.project_id, flags.shared_ds, flags.dcr_shared_table, flags.dcr_view, flags.dcr_privacy_column)
tableMetadata, err := get_bq_table_metadata(ctx, bqClient, flags.shared_ds, flags.dcr_view)
if err == nil {
print(tableMetadata)
bq_dataset_add_authorization(ctx, bqClient, flags.project_id, flags.shared_ds, flags.dcr_view)
listingDCR, err := create_or_get_dcr_listing(
ctx,
client,
flags.project_id,
flags.location,
flags.dcr_exchange_id,
flags.dcr_listing_id,
flags.shared_ds,
flags.dcr_view,
)
if err == nil {
println(fmt.Sprintf("Listing(DCR): [%s] %s", listingDCR.Name, listingDCR.DisplayName))
}
}
}
}