in analytics-hub/snippets/create_listing_golang/main.go [327:371]
func parse_args() Flags {
// Define command-line flags
flags := Flags{}
project_id := flag.String("project_id", "", "Google Cloud project ID (required)")
location := flag.String("location", "", "Location for the BigQuery dataset (required)")
exchange_id := flag.String("exchange_id", "", "Exchange ID (required)")
listing_id := flag.String("listing_id", "", "Listing ID (required)")
restrict_egress := flag.Bool("restrict_egress", false, "Egress controls enabled")
shared_ds := flag.String("shared_ds", "", "Shared dataset ID (required)")
subscriber_iam_member := flag.String("subscriber_iam_member", "", "IAM member who can subscribe - requires either user: or serviceAccount: prefix")
subscription_viewer_iam_member := flag.String("subscription_viewer_iam_member", "", "IAM member who can see subscription and request access - requires either user: or serviceAccount: prefix")
dcr_exchange_id := flag.String("dcr_exchange_id", "", "Privacy column for Data Clean Room")
dcr_listing_id := flag.String("dcr_listing_id", "", "Privacy column for Data Clean Room")
dcr_view := flag.String("dcr_view", "", "View with analysis rules to create for Data Clean Room")
dcr_shared_table := flag.String("dcr_shared_table", "", "Table to share in Data Clean Room")
dcr_privacy_column := flag.String("dcr_privacy_column", "", "Privacy column for Data Clean Room")
// Parse the command-line flags
flag.Parse()
// Use the parsed values
flags.project_id = *project_id
flags.location = *location
flags.exchange_id = *exchange_id
flags.listing_id = *listing_id
flags.restrict_egress = *restrict_egress
flags.shared_ds = *shared_ds
flags.subscriber_iam_member = *subscriber_iam_member
flags.subscription_viewer_iam_member = *subscription_viewer_iam_member
flags.dcr_exchange_id = *dcr_exchange_id
flags.dcr_listing_id = *dcr_listing_id
flags.dcr_view = *dcr_view
flags.dcr_shared_table = *dcr_shared_table
flags.dcr_privacy_column = *dcr_privacy_column
fmt.Print(flags)
// Check if required flags are provided
if *project_id == "" || *location == "" || *exchange_id == "" || *listing_id == "" || *shared_ds == "" || *subscriber_iam_member == "" || *subscription_viewer_iam_member == "" || *dcr_shared_table == "" || *dcr_privacy_column == "" {
flag.Usage()
os.Exit(1)
}
return flags
}