func main()

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))
			}
		}
	}
}