@producerflow/producerflowapi 1.0.2 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,11 +43,19 @@ export declare const PaginationSchema: GenMessage<Pagination>;
43
43
  */
44
44
  export type Address = Message<"producerflow.producer.v1.Address"> & {
45
45
  /**
46
- * Street address including house/building number and street name
46
+ * Deprecated: Use address_line_1 instead.
47
47
  *
48
- * @generated from field: string street = 1;
48
+ * @generated from field: string street = 1 [deprecated = true];
49
+ * @deprecated
49
50
  */
50
51
  street: string;
52
+ /**
53
+ * Primary address line including house/building number and street name.
54
+ * For backward compatibility, either street or address_line_1 can be used.
55
+ *
56
+ * @generated from field: string address_line_1 = 7;
57
+ */
58
+ addressLine1: string;
51
59
  /**
52
60
  * City of the address
53
61
  *
@@ -73,11 +81,11 @@ export type Address = Message<"producerflow.producer.v1.Address"> & {
73
81
  */
74
82
  county: string;
75
83
  /**
76
- * Optional second line of street address (apt, suite, unit, etc.)
84
+ * Optional second line of address (apt, suite, unit, etc.)
77
85
  *
78
- * @generated from field: optional string street_line_2 = 6;
86
+ * @generated from field: optional string address_line_2 = 6;
79
87
  */
80
- streetLine2?: string;
88
+ addressLine2?: string;
81
89
  };
82
90
  /**
83
91
  * Describes the message producerflow.producer.v1.Address.
@@ -85,7 +93,13 @@ export type Address = Message<"producerflow.producer.v1.Address"> & {
85
93
  */
86
94
  export declare const AddressSchema: GenMessage<Address>;
87
95
  /**
88
- * CreateAgencyOnboardingURLRequest contains information needed to generate an agency onboarding URL. This includes basic agency information and defaults. All fields in this request are optional. You can provide as much or as little information as you have available. Any missing information will be collected from the user during the onboarding process through the generated URL.
96
+ * CreateAgencyOnboardingURLRequest contains information needed to generate
97
+ * an agency onboarding URL. This includes basic agency information and
98
+ * defaults.
99
+ *
100
+ * All fields in this request are optional. You can provide as much or as little
101
+ * information as you have available. Any missing information will be collected
102
+ * from the user during the onboarding process through the generated URL.
89
103
  *
90
104
  * @generated from message producerflow.producer.v1.CreateAgencyOnboardingURLRequest
91
105
  */
@@ -359,7 +373,10 @@ export declare const ProducerDataSchema: GenMessage<ProducerData>;
359
373
  */
360
374
  export type ProducerData_Address = Message<"producerflow.producer.v1.ProducerData.Address"> & {
361
375
  /**
362
- * @generated from field: string street = 1;
376
+ * Deprecated: Use address_line_1 instead.
377
+ *
378
+ * @generated from field: string street = 1 [deprecated = true];
379
+ * @deprecated
363
380
  */
364
381
  street: string;
365
382
  /**
@@ -378,6 +395,16 @@ export type ProducerData_Address = Message<"producerflow.producer.v1.ProducerDat
378
395
  * @generated from field: string country = 5;
379
396
  */
380
397
  country: string;
398
+ /**
399
+ * @generated from field: optional string address_line_2 = 6;
400
+ */
401
+ addressLine2?: string;
402
+ /**
403
+ * Primary address line including house/building number and street name
404
+ *
405
+ * @generated from field: string address_line_1 = 7;
406
+ */
407
+ addressLine1: string;
381
408
  };
382
409
  /**
383
410
  * Describes the message producerflow.producer.v1.ProducerData.Address.
@@ -640,6 +667,13 @@ export type NewAgencyRequest_Agency_Principal = Message<"producerflow.producer.v
640
667
  tenantAdditionalQuestions: {
641
668
  [key: string]: string;
642
669
  };
670
+ /**
671
+ * The mailing address of the principal.
672
+ * This is where correspondence for the principal will be sent.
673
+ *
674
+ * @generated from field: producerflow.producer.v1.Address mailing_address = 9;
675
+ */
676
+ mailingAddress?: Address;
643
677
  };
644
678
  /**
645
679
  * Describes the message producerflow.producer.v1.NewAgencyRequest.Agency.Principal.
@@ -1230,12 +1264,26 @@ export type UpdateProducerRequest_Producer = Message<"producerflow.producer.v1.U
1230
1264
  */
1231
1265
  phone?: string;
1232
1266
  /**
1233
- * Street address of the producer.
1234
- * If provided, must be non-empty.
1267
+ * Deprecated: Use address_line_1 instead.
1235
1268
  *
1236
- * @generated from field: optional string street = 6;
1269
+ * @generated from field: optional string street = 6 [deprecated = true];
1270
+ * @deprecated
1237
1271
  */
1238
1272
  street?: string;
1273
+ /**
1274
+ * Primary address line of the producer.
1275
+ * If provided, must be non-empty.
1276
+ *
1277
+ * @generated from field: optional string address_line_1 = 14;
1278
+ */
1279
+ addressLine1?: string;
1280
+ /**
1281
+ * Second line of the address (apartment, suite, unit, etc.).
1282
+ * If provided, must be non-empty.
1283
+ *
1284
+ * @generated from field: optional string address_line_2 = 13;
1285
+ */
1286
+ addressLine2?: string;
1239
1287
  /**
1240
1288
  * City of the producer.
1241
1289
  * If provided, must be non-empty.
@@ -1408,10 +1456,10 @@ export declare const UpdateAgencyRequest_AgencySchema: GenMessage<UpdateAgencyRe
1408
1456
  */
1409
1457
  export type UpdateAgencyRequest_Agency_Address = Message<"producerflow.producer.v1.UpdateAgencyRequest.Agency.Address"> & {
1410
1458
  /**
1411
- * Street address including house/building number and street name.
1412
- * If provided, must be non-empty.
1459
+ * Deprecated: Use address_line_1 instead.
1413
1460
  *
1414
- * @generated from field: optional string street = 1;
1461
+ * @generated from field: optional string street = 1 [deprecated = true];
1462
+ * @deprecated
1415
1463
  */
1416
1464
  street?: string;
1417
1465
  /**
@@ -1435,6 +1483,20 @@ export type UpdateAgencyRequest_Agency_Address = Message<"producerflow.producer.
1435
1483
  * @generated from field: optional string zip = 4;
1436
1484
  */
1437
1485
  zip?: string;
1486
+ /**
1487
+ * Additional address line (e.g., apartment, suite, floor number).
1488
+ * If provided, must be non-empty.
1489
+ *
1490
+ * @generated from field: optional string address_line_2 = 5;
1491
+ */
1492
+ addressLine2?: string;
1493
+ /**
1494
+ * Primary address line including house/building number and street name.
1495
+ * If provided, must be non-empty.
1496
+ *
1497
+ * @generated from field: optional string address_line_1 = 6;
1498
+ */
1499
+ addressLine1?: string;
1438
1500
  };
1439
1501
  /**
1440
1502
  * Describes the message producerflow.producer.v1.UpdateAgencyRequest.Agency.Address.
@@ -1492,13 +1554,27 @@ export type ListNewProducersResponse = Message<"producerflow.producer.v1.ListNew
1492
1554
  */
1493
1555
  export declare const ListNewProducersResponseSchema: GenMessage<ListNewProducersResponse>;
1494
1556
  /**
1495
- * Agency represents a complete agency entity with all associated information.
1557
+ * Agency represents a complete insurance agency with all associated data.
1558
+ *
1559
+ * This message contains comprehensive agency information including:
1560
+ * - Basic contact and identification details
1561
+ * - Principal producer information
1562
+ * - Banking details for commission payments
1563
+ * - Business operating information
1564
+ * - NIPR-synchronized licensing and regulatory data
1565
+ * - Physical locations
1566
+ *
1567
+ * The NIPR data is automatically synchronized from the National Insurance
1568
+ * Producer Registry and includes licenses, appointments, regulatory actions,
1569
+ * and addresses. This data is read-only and can only be updated by triggering
1570
+ * NIPR sync operations.
1496
1571
  *
1497
1572
  * @generated from message producerflow.producer.v1.Agency
1498
1573
  */
1499
1574
  export type Agency = Message<"producerflow.producer.v1.Agency"> & {
1500
1575
  /**
1501
- * Unique identifier for the agency.
1576
+ * Unique identifier for the agency (UUID format).
1577
+ * This ID is used in all API operations that reference this agency.
1502
1578
  *
1503
1579
  * @generated from field: string agency_id = 1;
1504
1580
  */
@@ -1711,9 +1787,10 @@ export declare const Agency_AgencyInfoSchema: GenMessage<Agency_AgencyInfo>;
1711
1787
  */
1712
1788
  export type Agency_Address = Message<"producerflow.producer.v1.Agency.Address"> & {
1713
1789
  /**
1714
- * Street name and number of the location.
1790
+ * Deprecated: Use address_line_1 instead.
1715
1791
  *
1716
- * @generated from field: string street = 1;
1792
+ * @generated from field: string street = 1 [deprecated = true];
1793
+ * @deprecated
1717
1794
  */
1718
1795
  street: string;
1719
1796
  /**
@@ -1734,6 +1811,18 @@ export type Agency_Address = Message<"producerflow.producer.v1.Agency.Address">
1734
1811
  * @generated from field: string zip = 4;
1735
1812
  */
1736
1813
  zip: string;
1814
+ /**
1815
+ * Primary address line including street name and number of the location.
1816
+ *
1817
+ * @generated from field: string address_line_1 = 5;
1818
+ */
1819
+ addressLine1: string;
1820
+ /**
1821
+ * Optional second line of address (apt, suite, unit, etc.)
1822
+ *
1823
+ * @generated from field: optional string address_line_2 = 6;
1824
+ */
1825
+ addressLine2?: string;
1737
1826
  };
1738
1827
  /**
1739
1828
  * Describes the message producerflow.producer.v1.Agency.Address.
@@ -2124,9 +2213,10 @@ export type Agency_NIPR_Address = Message<"producerflow.producer.v1.Agency.NIPR.
2124
2213
  */
2125
2214
  addressState: string;
2126
2215
  /**
2127
- * Street address.
2216
+ * Deprecated: Use address_line_1 instead.
2128
2217
  *
2129
- * @generated from field: string street = 4;
2218
+ * @generated from field: string street = 4 [deprecated = true];
2219
+ * @deprecated
2130
2220
  */
2131
2221
  street: string;
2132
2222
  /**
@@ -2159,6 +2249,12 @@ export type Agency_NIPR_Address = Message<"producerflow.producer.v1.Agency.NIPR.
2159
2249
  * @generated from field: google.protobuf.Timestamp updated_at = 9;
2160
2250
  */
2161
2251
  updatedAt?: Timestamp;
2252
+ /**
2253
+ * Primary address line.
2254
+ *
2255
+ * @generated from field: string address_line_1 = 10;
2256
+ */
2257
+ addressLine1: string;
2162
2258
  };
2163
2259
  /**
2164
2260
  * Describes the message producerflow.producer.v1.Agency.NIPR.Address.
@@ -2487,14 +2583,36 @@ export type Agency_NIPR_Appointment = Message<"producerflow.producer.v1.Agency.N
2487
2583
  */
2488
2584
  export declare const Agency_NIPR_AppointmentSchema: GenMessage<Agency_NIPR_Appointment>;
2489
2585
  /**
2490
- * Producer represents a producer that has been onboarded.
2491
- *
2492
- * Internal ID of the producer.
2586
+ * Producer represents an insurance producer (agent) with complete licensing
2587
+ * information.
2588
+ *
2589
+ * This message contains comprehensive producer information including:
2590
+ * - Basic contact details (name, email, phone, address)
2591
+ * - Agency association
2592
+ * - NIPR-synchronized licensing data (licenses, appointments, regulatory actions)
2593
+ * - Location assignments within the agency
2594
+ *
2595
+ * NIPR Data Synchronization:
2596
+ * The NIPR data is automatically fetched from the National Insurance Producer
2597
+ * Registry when the producer is created (if sync_with_nipr is enabled) and can
2598
+ * be refreshed by:
2599
+ * - Calling SyncProducerWithNIPR manually
2600
+ * - Automatic daily updates via PDB Alerts (if pdb_alerts_sync_enabled is true)
2601
+ *
2602
+ * Use Cases:
2603
+ * - Verify producer licenses before selling insurance products
2604
+ * - Check Lines of Authority (LOAs) to ensure producers can sell specific product types
2605
+ * - Monitor license expiration dates for compliance
2606
+ * - Track carrier appointments to know which companies the producer can represent
2607
+ * - Review regulatory history before hiring or contracting
2493
2608
  *
2494
2609
  * @generated from message producerflow.producer.v1.Producer
2495
2610
  */
2496
2611
  export type Producer = Message<"producerflow.producer.v1.Producer"> & {
2497
2612
  /**
2613
+ * Unique identifier for the producer (UUID format).
2614
+ * This ID is used in all API operations that reference this producer.
2615
+ *
2498
2616
  * @generated from field: string id = 1;
2499
2617
  */
2500
2618
  id: string;
@@ -2540,7 +2658,8 @@ export type Producer = Message<"producerflow.producer.v1.Producer"> & {
2540
2658
  phone: string;
2541
2659
  /**
2542
2660
  * Indicates whether the producer is enabled to be synchronized with NIPR API.
2543
- * When true, the system will regularly check for updates from NIPR.
2661
+ * When true, the system will regularly check for updates from NIPR using
2662
+ * PDB Alerts, providing automatic daily updates at no extra cost.
2544
2663
  *
2545
2664
  * @generated from field: bool pdb_alerts_sync_enabled = 13;
2546
2665
  */
@@ -2676,9 +2795,18 @@ export type Producer_NIPR = Message<"producerflow.producer.v1.Producer.NIPR"> &
2676
2795
  */
2677
2796
  regulatoryInfo?: Producer_NIPR_ProducerRegulatoryInfo;
2678
2797
  /**
2679
- * List of carrier appointments held by the producer in NIPR.
2680
- * These represent relationships with insurance carriers that allow
2681
- * the producer to sell their products.
2798
+ * List of carrier appointments held by the producer.
2799
+ *
2800
+ * Each appointment represents authorization to sell a specific carrier's
2801
+ * products for a specific line of authority. A producer typically has
2802
+ * multiple appointments across different carriers and LOAs.
2803
+ *
2804
+ * Before allowing a producer to quote or sell a product:
2805
+ * 1. Verify they have an active appointment with that carrier
2806
+ * 2. Verify the appointment's LOA matches the product type
2807
+ * 3. Check the appointment renewal date hasn't passed
2808
+ *
2809
+ * This data is synchronized from NIPR and is read-only.
2682
2810
  *
2683
2811
  * @generated from field: repeated producerflow.producer.v1.Producer.NIPR.Appointment appointments = 10;
2684
2812
  */
@@ -2690,7 +2818,25 @@ export type Producer_NIPR = Message<"producerflow.producer.v1.Producer.NIPR"> &
2690
2818
  */
2691
2819
  export declare const Producer_NIPRSchema: GenMessage<Producer_NIPR>;
2692
2820
  /**
2693
- * License contains information about a producer's insurance license.
2821
+ * License contains information about a producer's insurance license in a
2822
+ * specific state.
2823
+ *
2824
+ * Each producer can hold multiple licenses across different states. Each
2825
+ * license includes a set of Lines of Authority (LOAs) that define what
2826
+ * types of insurance the producer is authorized to sell.
2827
+ *
2828
+ * Key Concepts:
2829
+ * - Resident License: License in the producer's home state
2830
+ * - Non-Resident License: License in states other than the producer's home
2831
+ * state
2832
+ * - Lines of Authority (LOAs): Specific insurance types the license permits
2833
+ * (e.g., Life, Health, Property & Casualty, Variable Contracts)
2834
+ *
2835
+ * Compliance Use Cases:
2836
+ * - Verify producer is licensed in the state where they're selling
2837
+ * - Check license hasn't expired before allowing sales
2838
+ * - Ensure producer has the correct LOA for the product type
2839
+ * - Monitor expiration dates to send renewal reminders
2694
2840
  *
2695
2841
  * @generated from message producerflow.producer.v1.Producer.NIPR.License
2696
2842
  */
@@ -2740,8 +2886,12 @@ export type Producer_NIPR_License = Message<"producerflow.producer.v1.Producer.N
2740
2886
  */
2741
2887
  updatedAt?: Timestamp;
2742
2888
  /**
2743
- * Lines of Authority associated with this license.
2744
- * These define what types of insurance the producer can sell in this state.
2889
+ * Lines of Authority (LOAs) associated with this license.
2890
+ *
2891
+ * These define what types of insurance the producer is authorized to sell
2892
+ * in this state. A single license typically has multiple LOAs. Always
2893
+ * check that the producer has an active LOA matching the product type
2894
+ * before allowing sales.
2745
2895
  *
2746
2896
  * @generated from field: repeated producerflow.producer.v1.Producer.NIPR.License.LineOfAuthority lines_of_authority = 8;
2747
2897
  */
@@ -2753,27 +2903,60 @@ export type Producer_NIPR_License = Message<"producerflow.producer.v1.Producer.N
2753
2903
  */
2754
2904
  export declare const Producer_NIPR_LicenseSchema: GenMessage<Producer_NIPR_License>;
2755
2905
  /**
2756
- * LineOfAuthority represents a specific type of insurance coverage
2757
- * that a producer is authorized to sell under this license.
2906
+ * LineOfAuthority (LOA) represents a specific type of insurance that a
2907
+ * producer is authorized to sell under this license.
2908
+ *
2909
+ * Each license can have multiple LOAs. For example, a license might
2910
+ * include:
2911
+ * - LIFE
2912
+ * - HEALTH
2913
+ * - ACCIDENT AND HEALTH
2914
+ * - PROPERTY AND CASUALTY
2915
+ * - VARIABLE LIFE AND VARIABLE ANNUITY
2916
+ *
2917
+ * LOA Compliance:
2918
+ * Before allowing a producer to sell a product, verify they have an
2919
+ * active LOA that matches the product type. For example, a producer with
2920
+ * only a LIFE LOA cannot sell Property & Casualty insurance.
2921
+ *
2922
+ * LOA names are standardized by NIPR but may vary slightly between
2923
+ * states.
2758
2924
  *
2759
2925
  * @generated from message producerflow.producer.v1.Producer.NIPR.License.LineOfAuthority
2760
2926
  */
2761
2927
  export type Producer_NIPR_License_LineOfAuthority = Message<"producerflow.producer.v1.Producer.NIPR.License.LineOfAuthority"> & {
2762
2928
  /**
2763
- * The Line of Authority description (e.g., "Life", "Property and Casualty", "Health").
2764
- * This is typically an uppercase string that describes the insurance type.
2929
+ * The Line of Authority name (e.g., "LIFE", "PROPERTY AND CASUALTY",
2930
+ * "HEALTH").
2931
+ *
2932
+ * Common LOA types:
2933
+ * - LIFE: Life insurance products
2934
+ * - HEALTH: Health insurance products
2935
+ * - ACCIDENT AND HEALTH: Combined accident and health coverage
2936
+ * - PROPERTY: Property insurance
2937
+ * - CASUALTY: Casualty insurance
2938
+ * - PROPERTY AND CASUALTY: Combined property and casualty
2939
+ * - VARIABLE LIFE AND VARIABLE ANNUITY: Variable products requiring
2940
+ * securities license
2941
+ * - PERSONAL LINES: Homeowners, auto, and personal umbrella policies
2942
+ * - COMMERCIAL LINES: Business insurance policies
2943
+ *
2944
+ * This is typically an uppercase string standardized by NIPR.
2765
2945
  *
2766
2946
  * @generated from field: string loa = 1;
2767
2947
  */
2768
2948
  loa: string;
2769
2949
  /**
2770
2950
  * Whether this Line of Authority is currently active.
2951
+ * Inactive LOAs cannot be used to sell that type of insurance.
2771
2952
  *
2772
2953
  * @generated from field: bool active = 2;
2773
2954
  */
2774
2955
  active: boolean;
2775
2956
  /**
2776
- * The date when this Line of Authority was issued.
2957
+ * The date when this Line of Authority was first issued.
2958
+ * This helps track how long the producer has been authorized for this
2959
+ * insurance type.
2777
2960
  *
2778
2961
  * @generated from field: google.protobuf.Timestamp issue_date = 3;
2779
2962
  */
@@ -2785,7 +2968,7 @@ export type Producer_NIPR_License_LineOfAuthority = Message<"producerflow.produc
2785
2968
  */
2786
2969
  export declare const Producer_NIPR_License_LineOfAuthoritySchema: GenMessage<Producer_NIPR_License_LineOfAuthority>;
2787
2970
  /**
2788
- * LicenseStatus defines the possible statuses of an insurance license.
2971
+ * LicenseStatus defines the current state of an insurance license.
2789
2972
  *
2790
2973
  * @generated from enum producerflow.producer.v1.Producer.NIPR.License.LicenseStatus
2791
2974
  */
@@ -2797,20 +2980,26 @@ export declare enum Producer_NIPR_License_LicenseStatus {
2797
2980
  */
2798
2981
  UNSPECIFIED = 0,
2799
2982
  /**
2800
- * The license has expired and is no longer valid.
2983
+ * The license has expired and is no longer valid for selling insurance.
2984
+ * The producer must renew the license before conducting business in
2985
+ * this state.
2801
2986
  *
2802
2987
  * @generated from enum value: LICENSE_STATUS_EXPIRED = 1;
2803
2988
  */
2804
2989
  EXPIRED = 1,
2805
2990
  /**
2806
- * License is currently active.
2991
+ * License is currently active and in good standing.
2992
+ * The producer can sell insurance in this state according to their
2993
+ * LOAs.
2807
2994
  *
2808
2995
  * @generated from enum value: LICENSE_STATUS_VALID = 2;
2809
2996
  */
2810
2997
  VALID = 2,
2811
2998
  /**
2812
- * The license exists but is not in an active state.
2813
- * This could be due to suspension, revocation, or other reasons.
2999
+ * The license exists but is not currently active.
3000
+ * Reasons include: suspension, revocation, lapsed (not renewed), or
3001
+ * voluntarily inactive. The producer cannot sell insurance in this
3002
+ * state until the license is reinstated.
2814
3003
  *
2815
3004
  * @generated from enum value: LICENSE_STATUS_NOT_ACTIVE = 3;
2816
3005
  */
@@ -2983,48 +3172,88 @@ export type Producer_NIPR_ProducerRegulatoryInfo_RegulatoryAction = Message<"pro
2983
3172
  */
2984
3173
  export declare const Producer_NIPR_ProducerRegulatoryInfo_RegulatoryActionSchema: GenMessage<Producer_NIPR_ProducerRegulatoryInfo_RegulatoryAction>;
2985
3174
  /**
2986
- * Appointment represents a relationship between a producer and an insurance carrier.
3175
+ * Appointment represents a producer's authorization to sell products for a
3176
+ * specific insurance carrier.
3177
+ *
3178
+ * What is an Appointment?
3179
+ * An appointment is a formal relationship between a producer and an
3180
+ * insurance company that grants the producer authority to sell that
3181
+ * company's insurance products. Having a license is not enough - the
3182
+ * producer must also be appointed by each carrier whose products they want
3183
+ * to sell.
3184
+ *
3185
+ * Appointment Lifecycle:
3186
+ * 1. Active: Producer can sell this carrier's products
3187
+ * 2. Terminated: Appointment ended (various reasons: producer left, carrier
3188
+ * terminated, etc.)
3189
+ *
3190
+ * Use Cases:
3191
+ * - Verify producer is appointed before allowing them to quote/sell a
3192
+ * carrier's products
3193
+ * - Track which carriers each producer can represent
3194
+ * - Monitor appointment renewal dates
3195
+ * - Understand termination reasons for compliance and vetting
2987
3196
  *
2988
3197
  * @generated from message producerflow.producer.v1.Producer.NIPR.Appointment
2989
3198
  */
2990
3199
  export type Producer_NIPR_Appointment = Message<"producerflow.producer.v1.Producer.NIPR.Appointment"> & {
2991
3200
  /**
3201
+ * Branch identifier for multi-branch agencies.
3202
+ * This links the appointment to a specific agency branch if applicable.
3203
+ *
2992
3204
  * @generated from field: string branch_id = 1;
2993
3205
  */
2994
3206
  branchId: string;
2995
3207
  /**
2996
3208
  * Name of the insurance company for this appointment.
3209
+ * Examples: "State Farm", "Allstate", "Blue Cross Blue Shield"
2997
3210
  *
2998
3211
  * @generated from field: string company_name = 2;
2999
3212
  */
3000
3213
  companyName: string;
3001
3214
  /**
3002
- * Federal Employer Identification Number of the producer's company.
3215
+ * Federal Employer Identification Number (FEIN) of the insurance carrier.
3216
+ * This uniquely identifies the carrier company.
3003
3217
  *
3004
3218
  * @generated from field: string fein = 3;
3005
3219
  */
3006
3220
  fein: string;
3007
3221
  /**
3008
- * Company code for the insurance carrier.
3222
+ * Company code: A standardized code identifying the insurance carrier.
3223
+ * This is used in industry systems for carrier identification.
3009
3224
  *
3010
3225
  * @generated from field: string co_code = 4;
3011
3226
  */
3012
3227
  coCode: string;
3013
3228
  /**
3014
- * Line of authority for this appointment (e.g., Life, Property, Casualty).
3015
- * Indicates what types of insurance the producer can sell.
3229
+ * Line of authority for this appointment.
3230
+ *
3231
+ * This indicates what type of insurance the producer can sell for this
3232
+ * carrier. A producer might have multiple appointments with the same
3233
+ * carrier for different LOAs.
3234
+ *
3235
+ * Examples: "LIFE", "HEALTH", "PROPERTY AND CASUALTY", "VARIABLE LIFE AND
3236
+ * VARIABLE ANNUITY"
3016
3237
  *
3017
3238
  * @generated from field: string line_of_authority = 5;
3018
3239
  */
3019
3240
  lineOfAuthority: string;
3020
3241
  /**
3021
- * Code for the line of authority for this appointment.
3242
+ * Code for the line of authority.
3243
+ * A standardized code representing the LOA type.
3022
3244
  *
3023
3245
  * @generated from field: string loa_code = 6;
3024
3246
  */
3025
3247
  loaCode: string;
3026
3248
  /**
3027
- * Current status of the appointment (e.g., Active, Terminated).
3249
+ * Current status of the appointment.
3250
+ *
3251
+ * Common values:
3252
+ * - "Active": Producer can sell this carrier's products
3253
+ * - "Terminated": Appointment has ended
3254
+ * - "Pending": Appointment is being processed
3255
+ *
3256
+ * Always check status is "Active" before allowing sales.
3028
3257
  *
3029
3258
  * @generated from field: string status = 7;
3030
3259
  */
@@ -3032,23 +3261,35 @@ export type Producer_NIPR_Appointment = Message<"producerflow.producer.v1.Produc
3032
3261
  /**
3033
3262
  * Reason for termination if the appointment has been terminated.
3034
3263
  *
3264
+ * Common termination reasons:
3265
+ * - Producer requested termination
3266
+ * - Carrier terminated appointment
3267
+ * - Producer left agency
3268
+ * - Compliance or regulatory issues
3269
+ *
3270
+ * This field is empty if the appointment is still active.
3271
+ *
3035
3272
  * @generated from field: string termination_reason = 8;
3036
3273
  */
3037
3274
  terminationReason: string;
3038
3275
  /**
3039
- * Date associated with the current status or reason.
3276
+ * Date when the status or termination reason became effective.
3277
+ * For terminated appointments, this is when the termination occurred.
3040
3278
  *
3041
3279
  * @generated from field: google.protobuf.Timestamp status_reason_date = 9;
3042
3280
  */
3043
3281
  statusReasonDate?: Timestamp;
3044
3282
  /**
3045
3283
  * Date when the appointment will renew.
3284
+ * Appointments typically renew annually. Monitor this date for upcoming
3285
+ * renewals.
3046
3286
  *
3047
3287
  * @generated from field: google.protobuf.Timestamp appointment_renewal_date = 10;
3048
3288
  */
3049
3289
  appointmentRenewalDate?: Timestamp;
3050
3290
  /**
3051
3291
  * Additional affiliations or roles the producer has with the agency.
3292
+ * This may include special designations or relationship details.
3052
3293
  *
3053
3294
  * @generated from field: string agency_affiliations = 11;
3054
3295
  */
@@ -3066,9 +3307,10 @@ export declare const Producer_NIPR_AppointmentSchema: GenMessage<Producer_NIPR_A
3066
3307
  */
3067
3308
  export type Producer_Address = Message<"producerflow.producer.v1.Producer.Address"> & {
3068
3309
  /**
3069
- * Street address of the producer.
3310
+ * Deprecated: Use address_line_1 instead.
3070
3311
  *
3071
- * @generated from field: string street = 1;
3312
+ * @generated from field: string street = 1 [deprecated = true];
3313
+ * @deprecated
3072
3314
  */
3073
3315
  street: string;
3074
3316
  /**
@@ -3089,6 +3331,18 @@ export type Producer_Address = Message<"producerflow.producer.v1.Producer.Addres
3089
3331
  * @generated from field: string zip = 4;
3090
3332
  */
3091
3333
  zip: string;
3334
+ /**
3335
+ * Optional second line of address (apt, suite, unit, etc.)
3336
+ *
3337
+ * @generated from field: optional string address_line_2 = 13;
3338
+ */
3339
+ addressLine2?: string;
3340
+ /**
3341
+ * Primary address line of the producer.
3342
+ *
3343
+ * @generated from field: string address_line_1 = 14;
3344
+ */
3345
+ addressLine1: string;
3092
3346
  };
3093
3347
  /**
3094
3348
  * Describes the message producerflow.producer.v1.Producer.Address.
@@ -3098,75 +3352,155 @@ export declare const Producer_AddressSchema: GenMessage<Producer_Address>;
3098
3352
  /**
3099
3353
  * NewProducer represents the data needed to create a new producer in the system.
3100
3354
  *
3355
+ * This message is used by both NewProducer (single) and NewProducers (bulk) RPCs
3356
+ * to define producer information during creation. Producers are licensed insurance
3357
+ * professionals who can sell insurance products on behalf of carriers.
3358
+ *
3359
+ * Required vs Optional Fields:
3360
+ * - Required: first_name, last_name, email
3361
+ * - Strongly recommended: npn (for NIPR sync and validation)
3362
+ * - Optional: All other fields
3363
+ *
3364
+ * NIPR Integration:
3365
+ * If an NPN is provided, the system will validate it against NIPR's database.
3366
+ * Depending on the sync_with_nipr setting, it may also fetch complete license,
3367
+ * appointment, and regulatory information from NIPR.
3368
+ *
3101
3369
  * @generated from message producerflow.producer.v1.NewProducer
3102
3370
  */
3103
3371
  export type NewProducer = Message<"producerflow.producer.v1.NewProducer"> & {
3104
3372
  /**
3105
3373
  * First name of the producer.
3106
- * Required and must be non-empty.
3374
+ * Required field that must be non-empty.
3375
+ * Used for identification and correspondence.
3107
3376
  *
3108
3377
  * @generated from field: string first_name = 1;
3109
3378
  */
3110
3379
  firstName: string;
3111
3380
  /**
3112
3381
  * Last name of the producer.
3113
- * Required and must be non-empty.
3382
+ * Required field that must be non-empty.
3383
+ * Used for identification and formal communications.
3114
3384
  *
3115
3385
  * @generated from field: string last_name = 2;
3116
3386
  */
3117
3387
  lastName: string;
3118
3388
  /**
3119
3389
  * Middle name of the producer.
3120
- * Optional.
3390
+ * Optional field for complete name identification.
3391
+ * Important for NIPR matching when multiple producers have similar names.
3121
3392
  *
3122
3393
  * @generated from field: string middle_name = 7;
3123
3394
  */
3124
3395
  middleName: string;
3125
3396
  /**
3126
3397
  * Email address of the producer.
3127
- * Required and must be a valid email format.
3128
- * Must be unique within the tenant.
3398
+ * Required field with email format validation.
3399
+ * Must be unique across all producers in the tenant.
3400
+ * Used for:
3401
+ * - Account notifications and communications
3402
+ * - Password resets and authentication
3403
+ * - Unique identifier within the system
3129
3404
  *
3130
3405
  * @generated from field: string email = 3;
3131
3406
  */
3132
3407
  email: string;
3133
3408
  /**
3134
3409
  * National Producer Number (NPN) of the producer.
3410
+ * Optional but strongly recommended for licensed producers.
3411
+ * This unique identifier from NAIC enables:
3412
+ * - NIPR data synchronization (licenses, appointments, regulatory actions)
3413
+ * - Carrier appointment verification
3414
+ * - Compliance tracking across states
3415
+ * If provided, must be valid in NIPR's database or creation will fail.
3135
3416
  *
3136
3417
  * @generated from field: string npn = 4;
3137
3418
  */
3138
3419
  npn: string;
3139
3420
  /**
3140
3421
  * Phone number of the producer.
3141
- * Optional if default value, but if provided must match the pattern of a valid phone number.
3422
+ * Optional field for contact purposes.
3423
+ * If provided, must match international phone number pattern.
3424
+ * Format: Can include country code (e.g., +1 for US)
3142
3425
  *
3143
3426
  * @generated from field: string phone = 5;
3144
3427
  */
3145
3428
  phone: string;
3146
3429
  /**
3147
3430
  * Mailing address of the producer.
3148
- * This is where correspondence will be sent.
3431
+ * Optional but recommended for complete producer profiles.
3432
+ * This address is used for physical mail delivery and may differ
3433
+ * from the agency's address.
3149
3434
  *
3150
3435
  * @generated from field: producerflow.producer.v1.NewProducer.Address mailing_address = 6;
3151
3436
  */
3152
3437
  mailingAddress?: NewProducer_Address;
3153
3438
  /**
3154
- * Optional. External identifier for the producer in the tenant's system. This field allows tenants to maintain a reference to their own internal ID for this producer, enabling bi-directional synchronization between ProducerFlow and the tenant's system. Usage: Provide this when you have an existing identifier for the producer in your system. Omit if you don't need to track a reference to your internal system. This is independent of ProducerFlow's internal IDs and the authentication tenant context. Can be used with SetExternalID RPC to update this value after creation. Common use cases: Linking to an existing CRM or AMS system producer ID. Maintaining synchronization with legacy systems. Enabling lookups from external systems back to ProducerFlow. Format: Any string identifier that is meaningful in your system (e.g., "PROD-12345", "uuid"). Validation: Maximum length of 255 characters.
3439
+ * External identifier for the producer in the tenant's system.
3440
+ *
3441
+ * Optional field that enables bi-directional synchronization between ProducerFlow
3442
+ * and your internal systems. This allows you to maintain your existing producer
3443
+ * identifiers while leveraging ProducerFlow's capabilities.
3444
+ *
3445
+ * Usage Guidelines:
3446
+ * - Provide this when you have an existing identifier for the producer
3447
+ * - Omit if you don't need to track a reference to your internal system
3448
+ * - Can be updated later using the SetExternalID RPC
3449
+ * - Must be unique within your tenant for meaningful lookups
3450
+ *
3451
+ * Common Use Cases:
3452
+ * - Linking to an existing CRM or AMS system producer ID
3453
+ * - Maintaining synchronization with legacy systems
3454
+ * - Enabling lookups from external systems back to ProducerFlow
3455
+ * - Supporting data migration and system transitions
3456
+ *
3457
+ * Format: Any string identifier meaningful in your system (e.g., "PROD-12345", UUID)
3458
+ * Maximum length: 255 characters
3155
3459
  *
3156
3460
  * @generated from field: string tenant_id = 8;
3157
3461
  */
3158
3462
  tenantId: string;
3159
3463
  /**
3160
- * Optional list of location IDs to assign to the producer during creation.
3161
- * All locations must exist and belong to the specified agency.
3464
+ * Location IDs to assign to the producer during creation.
3465
+ *
3466
+ * Optional field for associating the producer with specific agency locations.
3467
+ * This is useful for multi-location agencies where producers work from or
3468
+ * service specific offices.
3469
+ *
3470
+ * Validation:
3471
+ * - All location IDs must be valid UUIDs
3472
+ * - All locations must exist and belong to the specified agency
3473
+ * - Maximum of 100 locations per producer
3474
+ * - Invalid location IDs will cause the entire creation to fail
3475
+ *
3476
+ * Post-Creation Management:
3477
+ * - Use AssignProducerToLocations to add more locations later
3478
+ * - Use UnassignProducerFromLocations to remove locations
3479
+ * - Use ListAgencyLocations to see available locations for an agency
3162
3480
  *
3163
3481
  * @generated from field: repeated string location_ids = 10;
3164
3482
  */
3165
3483
  locationIds: string[];
3166
3484
  /**
3167
- * MetadataQuestions contains custom metadata questions and answers for the producer.
3168
- * The map key is the question identifier/text, and the value is the answer provided.
3169
- * This field is deprecated and will be removed in a future release.
3485
+ * Custom metadata questions and answers for the producer.
3486
+ *
3487
+ * Optional field for storing tenant-specific information collected during
3488
+ * producer onboarding. This allows tenants to capture additional data points
3489
+ * that are important for their business processes but not part of the
3490
+ * standard producer fields.
3491
+ *
3492
+ * Structure:
3493
+ * - Key: Question identifier or the question text itself
3494
+ * - Value: The producer's answer or response
3495
+ *
3496
+ * Common Use Cases:
3497
+ * - Compliance questionnaires (e.g., "Have you ever had a license revoked?")
3498
+ * - Business preferences (e.g., "Preferred carrier partners")
3499
+ * - Specializations (e.g., "Areas of expertise")
3500
+ * - Internal classifications (e.g., "Producer tier", "Region")
3501
+ *
3502
+ * Note: This data is stored but not validated by ProducerFlow. Ensure your
3503
+ * application handles any necessary validation of the responses.
3170
3504
  *
3171
3505
  * @generated from field: map<string, string> metadata_questions = 11;
3172
3506
  */
@@ -3191,38 +3525,55 @@ export type NewProducer = Message<"producerflow.producer.v1.NewProducer"> & {
3191
3525
  export declare const NewProducerSchema: GenMessage<NewProducer>;
3192
3526
  /**
3193
3527
  * Address represents a mailing address for the producer.
3528
+ * All fields are required when an address is provided.
3529
+ * This address is used for:
3530
+ * - Official correspondence
3531
+ * - Licensing documentation
3532
+ * - Commission statements
3194
3533
  *
3195
3534
  * @generated from message producerflow.producer.v1.NewProducer.Address
3196
3535
  */
3197
3536
  export type NewProducer_Address = Message<"producerflow.producer.v1.NewProducer.Address"> & {
3198
3537
  /**
3199
- * Street address of the producer.
3200
- * Required and must be non-empty.
3538
+ * Deprecated: Use address_line_1 instead.
3201
3539
  *
3202
- * @generated from field: string street = 1;
3540
+ * @generated from field: string street = 1 [deprecated = true];
3541
+ * @deprecated
3203
3542
  */
3204
3543
  street: string;
3205
3544
  /**
3206
- * City of the producer.
3207
- * Required and must be non-empty.
3545
+ * City of the producer's mailing address.
3208
3546
  *
3209
3547
  * @generated from field: string city = 2;
3210
3548
  */
3211
3549
  city: string;
3212
3550
  /**
3213
- * State of the producer.
3214
- * Required and must be a 2-letter state code.
3551
+ * State of the producer's mailing address.
3552
+ * Must be a valid 2-letter US state code (e.g., "CA", "NY").
3215
3553
  *
3216
3554
  * @generated from field: string state = 3;
3217
3555
  */
3218
3556
  state: string;
3219
3557
  /**
3220
- * Zip code of the producer.
3221
- * Required and must be between 1 and 10 characters.
3558
+ * Zip code of the producer's mailing address.
3559
+ * Supports both 5-digit (12345) and ZIP+4 (12345-6789) formats.
3222
3560
  *
3223
3561
  * @generated from field: string zip = 4;
3224
3562
  */
3225
3563
  zip: string;
3564
+ /**
3565
+ * Optional second line of address (apt, suite, unit, etc.)
3566
+ *
3567
+ * @generated from field: optional string address_line_2 = 5;
3568
+ */
3569
+ addressLine2?: string;
3570
+ /**
3571
+ * Primary address line of the producer.
3572
+ * For backward compatibility, either street or address_line_1 can be used.
3573
+ *
3574
+ * @generated from field: string address_line_1 = 6;
3575
+ */
3576
+ addressLine1: string;
3226
3577
  };
3227
3578
  /**
3228
3579
  * Describes the message producerflow.producer.v1.NewProducer.Address.
@@ -3284,30 +3635,65 @@ export type NewProducerResponse = Message<"producerflow.producer.v1.NewProducerR
3284
3635
  */
3285
3636
  export declare const NewProducerResponseSchema: GenMessage<NewProducerResponse>;
3286
3637
  /**
3287
- * NewProducersRequest is used to create multiple producers in a single request.
3288
- * All producers will be associated with the specified agency.
3638
+ * NewProducersRequest creates multiple producers and associates them with a single agency.
3639
+ *
3640
+ * This request supports bulk creation of producers, which is more efficient than making
3641
+ * multiple individual NewProducer calls. All producers in the request will be associated
3642
+ * with the same agency, making this ideal for onboarding producer teams.
3643
+ *
3644
+ * Operation Behavior:
3645
+ * Producers are created sequentially. If a producer fails validation, the request
3646
+ * returns an error, but any producers created before the failure will remain in
3647
+ * the system.
3648
+ *
3649
+ * Request Limits:
3650
+ * - Minimum producers: 1 (enforced by validation)
3651
+ * - All producers must be for the same agency
3652
+ *
3653
+ * Each producer in the list can specify:
3654
+ * - Basic information (name, email, phone)
3655
+ * - NPN for NIPR validation and sync
3656
+ * - Mailing address
3657
+ * - Location assignments within the agency
3658
+ * - External ID for tenant system integration
3659
+ * - Custom metadata questions
3660
+ *
3661
+ * Common Use Cases:
3662
+ * - Bulk importing producers from spreadsheets or CSV files
3663
+ * - Migrating producer data from legacy systems
3664
+ * - Setting up new agencies with their initial producer roster
3665
+ * - Adding multiple producers during mergers or acquisitions
3289
3666
  *
3290
3667
  * @generated from message producerflow.producer.v1.NewProducersRequest
3291
3668
  */
3292
3669
  export type NewProducersRequest = Message<"producerflow.producer.v1.NewProducersRequest"> & {
3293
3670
  /**
3294
- * The UUID of the agency to associate the producers with.
3295
- * Must be a valid UUID format.
3671
+ * The UUID of the agency to associate all producers with.
3672
+ * This agency must exist and belong to the authenticated tenant.
3673
+ * All producers in the request will be assigned to this single agency.
3296
3674
  *
3297
3675
  * @generated from field: string agency_id = 1;
3298
3676
  */
3299
3677
  agencyId: string;
3300
3678
  /**
3301
- * List of producers to create.
3302
- * This field is required and must contain at least one producer.
3679
+ * List of producers to create in this bulk operation.
3680
+ * Required field that must contain at least one producer.
3681
+ * Each producer undergoes full validation including NPN verification if provided.
3303
3682
  *
3304
3683
  * @generated from field: repeated producerflow.producer.v1.NewProducer producers = 2;
3305
3684
  */
3306
3685
  producers: NewProducer[];
3307
3686
  /**
3308
- * Optional. Overrides the tenant's default NIPR sync setting during onboarding.
3309
- * Most tenants have this enabled by default, so it usually doesn't need to be set.
3310
- * If specified, this value takes precedence over the tenant's default behavior.
3687
+ * Optional. Overrides the tenant's default NIPR sync setting for all producers in this request.
3688
+ * NPN validation is always performed regardless of this setting.
3689
+ * When true: Fetches full NIPR EntityInfo data after validation (paid lookup)
3690
+ * When false: Skips NIPR EntityInfo fetch, only performs NPN validation
3691
+ * When omitted: Uses the tenant's default configuration
3692
+ *
3693
+ * Cost Implications:
3694
+ * Setting this to true will trigger billable NIPR EntityInfo lookups for each producer
3695
+ * with an NPN, counting against your monthly quota. Consider using false for test data
3696
+ * or when you plan to sync later via SyncProducerWithNIPR.
3311
3697
  *
3312
3698
  * @generated from field: optional bool sync_with_nipr = 3;
3313
3699
  */
@@ -3319,14 +3705,34 @@ export type NewProducersRequest = Message<"producerflow.producer.v1.NewProducers
3319
3705
  */
3320
3706
  export declare const NewProducersRequestSchema: GenMessage<NewProducersRequest>;
3321
3707
  /**
3322
- * NewProducersResponse contains the IDs of all created producers.
3708
+ * NewProducersResponse contains the IDs of all successfully created producers.
3709
+ *
3710
+ * The response provides a list of producer IDs that directly corresponds to the
3711
+ * order of producers in the request, allowing you to map each request entry to
3712
+ * its created resource.
3713
+ *
3714
+ * Order Guarantee:
3715
+ * The producer_ids array maintains the exact same order as the producers array
3716
+ * in the request. For example:
3717
+ * - Request producers[0] → Response producer_ids[0]
3718
+ * - Request producers[1] → Response producer_ids[1]
3719
+ * This ordering guarantee simplifies client-side processing and record keeping.
3720
+ *
3721
+ * Post-Creation Actions:
3722
+ * After receiving this response, you can:
3723
+ * - Use the IDs to fetch full producer details via GetProducer
3724
+ * - Assign producers to locations via AssignProducerToLocations
3725
+ * - Trigger NIPR sync if it was skipped during creation
3726
+ * - Set external IDs via SetExternalID if not provided during creation
3323
3727
  *
3324
3728
  * @generated from message producerflow.producer.v1.NewProducersResponse
3325
3729
  */
3326
3730
  export type NewProducersResponse = Message<"producerflow.producer.v1.NewProducersResponse"> & {
3327
3731
  /**
3328
3732
  * List of UUIDs for the newly created producers.
3329
- * The order matches the order of producers in the request.
3733
+ * These IDs are immediately available for use in subsequent API calls.
3734
+ * The array length will always match the number of producers in the request.
3735
+ * Order is guaranteed to match the request's producer array order.
3330
3736
  *
3331
3737
  * @generated from field: repeated string producer_ids = 1;
3332
3738
  */
@@ -3383,9 +3789,9 @@ export type NewContact = Message<"producerflow.producer.v1.NewContact"> & {
3383
3789
  /**
3384
3790
  * Mailing address of the contact.
3385
3791
  *
3386
- * @generated from field: producerflow.producer.v1.NewContact.Address address = 6;
3792
+ * @generated from field: producerflow.producer.v1.Address address = 6;
3387
3793
  */
3388
- address?: NewContact_Address;
3794
+ address?: Address;
3389
3795
  /**
3390
3796
  * Role or position of the contact within the agency.
3391
3797
  * Required and must be non-empty.
@@ -3411,46 +3817,6 @@ export type NewContact = Message<"producerflow.producer.v1.NewContact"> & {
3411
3817
  * Use `create(NewContactSchema)` to create a new message.
3412
3818
  */
3413
3819
  export declare const NewContactSchema: GenMessage<NewContact>;
3414
- /**
3415
- * Address represents a mailing address for the contact.
3416
- *
3417
- * @generated from message producerflow.producer.v1.NewContact.Address
3418
- */
3419
- export type NewContact_Address = Message<"producerflow.producer.v1.NewContact.Address"> & {
3420
- /**
3421
- * Street address of the contact.
3422
- * Required and must be non-empty.
3423
- *
3424
- * @generated from field: string street = 1;
3425
- */
3426
- street: string;
3427
- /**
3428
- * City of the contact.
3429
- * Required and must be non-empty.
3430
- *
3431
- * @generated from field: string city = 2;
3432
- */
3433
- city: string;
3434
- /**
3435
- * State of the contact's address.
3436
- * Required and must be exactly 2 characters (state code).
3437
- *
3438
- * @generated from field: string state = 3;
3439
- */
3440
- state: string;
3441
- /**
3442
- * Zip code of the contact's address.
3443
- * Required and must be between 1 and 10 characters.
3444
- *
3445
- * @generated from field: string zip = 4;
3446
- */
3447
- zip: string;
3448
- };
3449
- /**
3450
- * Describes the message producerflow.producer.v1.NewContact.Address.
3451
- * Use `create(NewContact_AddressSchema)` to create a new message.
3452
- */
3453
- export declare const NewContact_AddressSchema: GenMessage<NewContact_Address>;
3454
3820
  /**
3455
3821
  * NewContactRequest is used to create a new contact and associate it with an agency.
3456
3822
  *
@@ -3592,9 +3958,11 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3592
3958
  */
3593
3959
  role: string;
3594
3960
  /**
3595
- * @generated from field: producerflow.producer.v1.Contact.Address address = 8;
3961
+ * Mailing address of the contact.
3962
+ *
3963
+ * @generated from field: producerflow.producer.v1.Address address = 8;
3596
3964
  */
3597
- address?: Contact_Address;
3965
+ address?: Address;
3598
3966
  /**
3599
3967
  * National Producer Number (NPN) of the contact, if applicable.
3600
3968
  *
@@ -3613,43 +3981,6 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3613
3981
  * Use `create(ContactSchema)` to create a new message.
3614
3982
  */
3615
3983
  export declare const ContactSchema: GenMessage<Contact>;
3616
- /**
3617
- * Mailing address of the contact.
3618
- * Address represents a mailing address for the contact.
3619
- *
3620
- * @generated from message producerflow.producer.v1.Contact.Address
3621
- */
3622
- export type Contact_Address = Message<"producerflow.producer.v1.Contact.Address"> & {
3623
- /**
3624
- * Street address of the contact.
3625
- *
3626
- * @generated from field: string street = 1;
3627
- */
3628
- street: string;
3629
- /**
3630
- * City of the contact.
3631
- *
3632
- * @generated from field: string city = 2;
3633
- */
3634
- city: string;
3635
- /**
3636
- * State of the contact.
3637
- *
3638
- * @generated from field: string state = 3;
3639
- */
3640
- state: string;
3641
- /**
3642
- * Zip code of the contact.
3643
- *
3644
- * @generated from field: string zip = 4;
3645
- */
3646
- zip: string;
3647
- };
3648
- /**
3649
- * Describes the message producerflow.producer.v1.Contact.Address.
3650
- * Use `create(Contact_AddressSchema)` to create a new message.
3651
- */
3652
- export declare const Contact_AddressSchema: GenMessage<Contact_Address>;
3653
3984
  /**
3654
3985
  * ListAgencyContactsRequest requests all contacts associated with an agency.
3655
3986
  *
@@ -4074,68 +4405,92 @@ export type StopSyncAgencyWithNIPRResponse = Message<"producerflow.producer.v1.S
4074
4405
  */
4075
4406
  export declare const StopSyncAgencyWithNIPRResponseSchema: GenMessage<StopSyncAgencyWithNIPRResponse>;
4076
4407
  /**
4077
- * AgencySummary contains a lightweight summary of an agency for list views.
4078
- * This message contains only the essential fields needed for displaying agencies in a list.
4408
+ * AgencySummary provides essential agency information for list views and quick
4409
+ * reference.
4410
+ *
4411
+ * This message is optimized for displaying agencies in lists, tables, and
4412
+ * search results without the overhead of full NIPR data. It contains only the
4413
+ * most commonly needed fields for agency identification and basic contact
4414
+ * information.
4415
+ *
4416
+ * For complete agency information including NIPR data, licenses, appointments,
4417
+ * and associated producers, use the GetAgencyAndProducers RPC.
4079
4418
  *
4080
4419
  * @generated from message producerflow.producer.v1.AgencySummary
4081
4420
  */
4082
4421
  export type AgencySummary = Message<"producerflow.producer.v1.AgencySummary"> & {
4083
4422
  /**
4084
- * Unique identifier for the agency.
4423
+ * Unique identifier for the agency (UUID format).
4424
+ * Use this ID to retrieve full agency details via GetAgencyAndProducers.
4085
4425
  *
4086
4426
  * @generated from field: string agency_id = 1;
4087
4427
  */
4088
4428
  agencyId: string;
4089
4429
  /**
4090
- * Agency name.
4430
+ * The official name of the agency.
4431
+ * This is typically the legal business name.
4091
4432
  *
4092
4433
  * @generated from field: string name = 2;
4093
4434
  */
4094
4435
  name: string;
4095
4436
  /**
4096
- * Agency email address.
4437
+ * Primary email address for the agency.
4438
+ * Used for general communication and must be unique within the tenant.
4097
4439
  *
4098
4440
  * @generated from field: string email = 3;
4099
4441
  */
4100
4442
  email: string;
4101
4443
  /**
4102
- * Agency phone number.
4444
+ * Main phone number for the agency.
4445
+ * Format may vary but typically includes country code for international numbers.
4103
4446
  *
4104
4447
  * @generated from field: string phone = 4;
4105
4448
  */
4106
4449
  phone: string;
4107
4450
  /**
4108
- * Agency NPN (National Producer Number).
4451
+ * National Producer Number (NPN) assigned by NIPR.
4452
+ * Only present for standard agencies (not sole proprietors).
4453
+ * Empty string if the agency doesn't have an NPN.
4109
4454
  *
4110
4455
  * @generated from field: string npn = 5;
4111
4456
  */
4112
4457
  npn: string;
4113
4458
  /**
4114
- * Agency FEIN (Federal Employer Identification Number).
4459
+ * Federal Employer Identification Number (FEIN).
4460
+ * Nine-digit number assigned by the IRS for tax purposes.
4461
+ * May be empty for sole proprietors or agencies without FEIN.
4115
4462
  *
4116
4463
  * @generated from field: string fein = 6;
4117
4464
  */
4118
4465
  fein: string;
4119
4466
  /**
4120
4467
  * Organization ID that the agency belongs to.
4468
+ * References organizations like aggregators or agency networks.
4469
+ * Optional field - null if the agency isn't part of an organization.
4121
4470
  *
4122
4471
  * @generated from field: optional string organization_id = 7;
4123
4472
  */
4124
4473
  organizationId?: string;
4125
4474
  /**
4126
- * Whether this is an internal tenant agency.
4475
+ * Indicates whether this is an internal tenant agency.
4476
+ * True for agencies owned/operated by the tenant.
4477
+ * False for external/partner agencies.
4127
4478
  *
4128
4479
  * @generated from field: bool is_tenant_agency = 8;
4129
4480
  */
4130
4481
  isTenantAgency: boolean;
4131
4482
  /**
4132
- * Whether this is a sole proprietor.
4483
+ * Indicates whether this agency is a sole proprietor.
4484
+ * True: Individual producer operating as their own agency (ENTITY_TYPE_SOLE_PROPRIETOR).
4485
+ * False: Standard agency with multiple producers (ENTITY_TYPE_AGENCY).
4133
4486
  *
4134
4487
  * @generated from field: bool is_sole_proprietor = 9;
4135
4488
  */
4136
4489
  isSoleProprietor: boolean;
4137
4490
  /**
4138
- * When the agency was created.
4491
+ * Timestamp when the agency was created in the system.
4492
+ * Used for sorting agencies by creation date in list views.
4493
+ * Always in UTC timezone.
4139
4494
  *
4140
4495
  * @generated from field: google.protobuf.Timestamp created_at = 10;
4141
4496
  */
@@ -4147,50 +4502,73 @@ export type AgencySummary = Message<"producerflow.producer.v1.AgencySummary"> &
4147
4502
  */
4148
4503
  export declare const AgencySummarySchema: GenMessage<AgencySummary>;
4149
4504
  /**
4150
- * ListAgenciesRequest requests a list of agencies associated with the tenant.
4151
- * Supports optional filtering and pagination parameters.
4505
+ * ListAgenciesRequest enables flexible querying of agencies with multiple filter
4506
+ * options and pagination support.
4507
+ *
4508
+ * All filters are optional and can be combined for precise results. When multiple
4509
+ * filters are specified, they are applied with AND logic (agencies must match all
4510
+ * specified criteria).
4511
+ *
4512
+ * Example Use Cases:
4513
+ * - Get all agencies in an organization: set organization_id
4514
+ * - Search for an agency by name: set search_query
4515
+ * - Find failing NIPR syncs: set nipr_sync_statuses to [NIPR_SYNC_STATE_FAILING]
4516
+ * - Get sole proprietors only: set entity_type to ENTITY_TYPE_SOLE_PROPRIETOR
4517
+ * - Paginate through all agencies: use pagination with page_token
4152
4518
  *
4153
4519
  * @generated from message producerflow.producer.v1.ListAgenciesRequest
4154
4520
  */
4155
4521
  export type ListAgenciesRequest = Message<"producerflow.producer.v1.ListAgenciesRequest"> & {
4156
4522
  /**
4157
4523
  * Optional. Filter agencies by organization ID.
4158
- * If provided, only agencies belonging to this organization will be returned.
4524
+ * Only agencies belonging to this specific organization will be returned.
4525
+ * Must be a valid UUID if provided.
4526
+ * Use ListOrganizations to get valid organization IDs.
4159
4527
  *
4160
4528
  * @generated from field: optional string organization_id = 1;
4161
4529
  */
4162
4530
  organizationId?: string;
4163
4531
  /**
4164
- * Optional. Search query to filter agencies by name, NPN, or email.
4165
- * If provided, only agencies matching the search query will be returned.
4532
+ * Optional. Free-text search across agency fields.
4533
+ * Searches in: agency name, NPN, and email address.
4534
+ * The search is case-insensitive and uses partial matching.
4535
+ * Example: "smith" will match "Smith Insurance Agency" and "john.smith@agency.com"
4166
4536
  *
4167
4537
  * @generated from field: optional string search_query = 2;
4168
4538
  */
4169
4539
  searchQuery?: string;
4170
4540
  /**
4171
- * Optional. Pagination parameters.
4172
- * If not provided, defaults to page_size=50.
4541
+ * Optional. Pagination parameters for controlling result set size and navigation.
4542
+ * If not provided, defaults to page_size=50 with no offset.
4543
+ * Maximum allowed page_size is 200; values above this will be capped.
4173
4544
  *
4174
4545
  * @generated from field: producerflow.producer.v1.Pagination pagination = 3;
4175
4546
  */
4176
4547
  pagination?: Pagination;
4177
4548
  /**
4178
- * Optional. Filter by agency type (internal vs external).
4179
- * If not provided, returns all agencies regardless of type.
4549
+ * Optional. Filter by agency classification (internal vs external).
4550
+ * - AGENCY_TYPE_INTERNAL: Agencies owned/operated by the tenant
4551
+ * - AGENCY_TYPE_EXTERNAL: Partner or third-party agencies
4552
+ * If not specified, returns both internal and external agencies.
4180
4553
  *
4181
4554
  * @generated from field: optional producerflow.producer.v1.AgencyType agency_type = 4;
4182
4555
  */
4183
4556
  agencyType?: AgencyType;
4184
4557
  /**
4185
- * Optional. Filter by entity type (sole proprietor vs agency).
4186
- * If not provided, returns all agencies regardless of entity type.
4558
+ * Optional. Filter by business entity structure.
4559
+ * - ENTITY_TYPE_SOLE_PROPRIETOR: Individual producers as agencies
4560
+ * - ENTITY_TYPE_AGENCY: Standard multi-producer agencies
4561
+ * If not specified, returns both sole proprietors and standard agencies.
4187
4562
  *
4188
4563
  * @generated from field: optional producerflow.producer.v1.EntityType entity_type = 5;
4189
4564
  */
4190
4565
  entityType?: EntityType;
4191
4566
  /**
4192
- * Optional. Filter by NIPR sync status.
4193
- * If not provided, returns all agencies regardless of sync status.
4567
+ * Optional. Filter by NIPR synchronization status.
4568
+ * Multiple statuses can be specified to match agencies in any of those states.
4569
+ * Useful for monitoring sync health and identifying agencies needing attention.
4570
+ * Valid values: ACTIVE, FAILING, PENDING, DISABLED
4571
+ * If empty, returns agencies in all sync states.
4194
4572
  *
4195
4573
  * @generated from field: repeated producerflow.producer.v1.NIPRSyncState nipr_sync_statuses = 6;
4196
4574
  */
@@ -4202,27 +4580,45 @@ export type ListAgenciesRequest = Message<"producerflow.producer.v1.ListAgencies
4202
4580
  */
4203
4581
  export declare const ListAgenciesRequestSchema: GenMessage<ListAgenciesRequest>;
4204
4582
  /**
4205
- * ListAgenciesResponse contains the list of agencies matching the filter criteria.
4583
+ * ListAgenciesResponse provides paginated agency results with metadata for
4584
+ * navigation and total counts.
4585
+ *
4586
+ * The response is optimized for UI display with summary data only. For complete
4587
+ * agency information including NIPR data, use GetAgencyAndProducers with the
4588
+ * agency_id from the summary.
4589
+ *
4590
+ * Pagination Notes:
4591
+ * - Results are always ordered by creation date (newest first)
4592
+ * - Page tokens are opaque and should not be constructed by clients
4593
+ * - Total count reflects all matching agencies, not just the current page
4594
+ * - Empty agencies list with total_count > 0 indicates you've paginated past the end
4206
4595
  *
4207
4596
  * @generated from message producerflow.producer.v1.ListAgenciesResponse
4208
4597
  */
4209
4598
  export type ListAgenciesResponse = Message<"producerflow.producer.v1.ListAgenciesResponse"> & {
4210
4599
  /**
4211
4600
  * List of agency summaries matching the filter criteria.
4212
- * The agencies are ordered by creation date, most recent first.
4601
+ * Ordered by creation date with the most recently created agencies first.
4602
+ * Will be empty if no agencies match the filters or if paginating past the last page.
4603
+ * Maximum of page_size agencies per response (default 50, max 200).
4213
4604
  *
4214
4605
  * @generated from field: repeated producerflow.producer.v1.AgencySummary agencies = 1;
4215
4606
  */
4216
4607
  agencies: AgencySummary[];
4217
4608
  /**
4218
- * A token that can be sent as `page_token` to retrieve the next page.
4219
- * If this field is omitted, there are no subsequent pages.
4609
+ * Pagination token for retrieving the next page of results.
4610
+ * Pass this value as page_token in the next request to continue pagination.
4611
+ * Empty string indicates this is the last page of results.
4612
+ * Tokens are opaque and their format may change; treat as black box.
4220
4613
  *
4221
4614
  * @generated from field: string next_page_token = 2;
4222
4615
  */
4223
4616
  nextPageToken: string;
4224
4617
  /**
4225
- * Total number of agencies matching the filter criteria.
4618
+ * Total number of agencies matching the filter criteria across all pages.
4619
+ * This count is independent of pagination and represents the full result set.
4620
+ * Useful for displaying "Showing X-Y of Z agencies" in UIs.
4621
+ * Will be 0 if no agencies match the specified filters.
4226
4622
  *
4227
4623
  * @generated from field: int32 total_count = 3;
4228
4624
  */
@@ -4234,16 +4630,33 @@ export type ListAgenciesResponse = Message<"producerflow.producer.v1.ListAgencie
4234
4630
  */
4235
4631
  export declare const ListAgenciesResponseSchema: GenMessage<ListAgenciesResponse>;
4236
4632
  /**
4237
- * ListOrganizationsRequest requests a list of all organizations associated with the tenant.
4238
- * This request requires no parameters and will return all organizations that
4239
- * the authenticated tenant has access to.
4633
+ * ListOrganizationsRequest requests a list of all organizations associated with
4634
+ * the authenticated tenant.
4635
+ *
4636
+ * Organizations provide a way to group agencies into logical business units,
4637
+ * networks, or aggregator relationships. This endpoint returns all organizations
4638
+ * accessible to your tenant, which can be used to:
4639
+ * - Display organization hierarchies in user interfaces
4640
+ * - Filter agencies by organization
4641
+ * - Apply organization-specific business rules or workflows
4642
+ *
4643
+ * The response supports pagination for tenants with large numbers of organizations.
4240
4644
  *
4241
4645
  * @generated from message producerflow.producer.v1.ListOrganizationsRequest
4242
4646
  */
4243
4647
  export type ListOrganizationsRequest = Message<"producerflow.producer.v1.ListOrganizationsRequest"> & {
4244
4648
  /**
4245
- * Optional. Pagination parameters.
4246
- * If not provided, defaults to page_size=50.
4649
+ * Optional pagination parameters to control the result set.
4650
+ *
4651
+ * Pagination allows you to retrieve organizations in manageable chunks:
4652
+ * - page_size: Number of organizations to return (default: 50, max: 200)
4653
+ * - page_token: Token from previous response to get the next page
4654
+ *
4655
+ * Example usage:
4656
+ * - First request: page_size=100 (returns first 100 organizations)
4657
+ * - Subsequent requests: Use next_page_token from previous response
4658
+ *
4659
+ * If omitted, returns the first 50 organizations.
4247
4660
  *
4248
4661
  * @generated from field: producerflow.producer.v1.Pagination pagination = 1;
4249
4662
  */
@@ -4255,36 +4668,71 @@ export type ListOrganizationsRequest = Message<"producerflow.producer.v1.ListOrg
4255
4668
  */
4256
4669
  export declare const ListOrganizationsRequestSchema: GenMessage<ListOrganizationsRequest>;
4257
4670
  /**
4258
- * Organization represents a logical grouping or hierarchical structure within a tenant.
4259
- * Organizations can be used to organize agencies into meaningful groups
4260
- * such as agency networks, aggregators, or other business hierarchies.
4671
+ * Organization represents a logical grouping or hierarchical structure for managing agencies.
4672
+ *
4673
+ * Organizations enable better management of insurance distribution networks by grouping
4674
+ * agencies into meaningful business units. Common organization types include:
4675
+ * - Agency networks or clusters
4676
+ * - Aggregators
4677
+ * - Geographic regions or territories
4678
+ * - Franchise groups or corporate structures
4679
+ * - Market segments or product lines
4680
+ *
4261
4681
  *
4262
4682
  * @generated from message producerflow.producer.v1.Organization
4263
4683
  */
4264
4684
  export type Organization = Message<"producerflow.producer.v1.Organization"> & {
4265
4685
  /**
4266
- * Unique identifier for the organization.
4267
- * This is a UUID that can be used to reference the organization in other API calls.
4686
+ * Unique identifier for the organization (UUID format).
4687
+ *
4688
+ * This ID is system-generated and immutable. Use this ID to:
4689
+ * - Reference the organization in API calls (GetOrganization, agency creation)
4690
+ * - Establish relationships between organizations and agencies
4691
+ * - Track organization-level metrics and reporting
4692
+ *
4693
+ * Format: Standard UUID v4 (e.g., "123e4567-e89b-12d3-a456-426614174000")
4268
4694
  *
4269
4695
  * @generated from field: string id = 1;
4270
4696
  */
4271
4697
  id: string;
4272
4698
  /**
4273
4699
  * Display name of the organization.
4274
- * This is the human-readable name that identifies the organization to users.
4700
+ *
4701
+ * This is the human-readable name shown in user interfaces and reports.
4702
+ * Names must be unique within your tenant (case-insensitive comparison).
4703
+ *
4704
+ * Best Practices:
4705
+ * - Use clear, descriptive names that reflect the organization's purpose
4706
+ * - Include geographic or business unit identifiers when relevant
4707
+ * - Avoid special characters that may cause display issues
4708
+ *
4709
+ * Examples: "West Coast Network", "AgencyHero Aggregator", "Premium Partners Group"
4275
4710
  *
4276
4711
  * @generated from field: string name = 2;
4277
4712
  */
4278
4713
  name: string;
4279
4714
  /**
4280
4715
  * External identifier for the organization.
4281
- * This is the identifier used by the tenant's system to identify the organization.
4716
+ *
4717
+ * This field maps the ProducerFlow organization to your internal system's
4718
+ * organization ID, enabling bi-directional synchronization and integration.
4719
+ *
4720
+ * Use Cases:
4721
+ * - Maintain references to your CRM or ERP system
4722
+ * - Enable data synchronization between systems
4723
+ * - Support migration from legacy systems
4724
+ *
4725
+ * This field is optional and can be any string format meaningful to your system.
4726
+ * Examples: "ORG-12345", "west-coast-001", UUID from your system
4282
4727
  *
4283
4728
  * @generated from field: string external_id = 3;
4284
4729
  */
4285
4730
  externalId: string;
4286
4731
  /**
4287
- * Contact email address for the organization.
4732
+ * Primary contact email address for the organization.
4733
+ *
4734
+ * Optional field. If provided, must be a valid email format.
4735
+ * Example: "admin@westcoastnetwork.com"
4288
4736
  *
4289
4737
  * @generated from field: string email = 4;
4290
4738
  */
@@ -4296,31 +4744,61 @@ export type Organization = Message<"producerflow.producer.v1.Organization"> & {
4296
4744
  */
4297
4745
  export declare const OrganizationSchema: GenMessage<Organization>;
4298
4746
  /**
4299
- * ListOrganizationsResponse contains the list of organizations associated with the tenant.
4300
- * The organizations are returned ordered by name. If the tenant has no organizations,
4301
- * the organizations list will be empty.
4747
+ * ListOrganizationsResponse contains the paginated list of organizations for the tenant.
4748
+ *
4749
+ * The response includes all organizations accessible to your authenticated tenant,
4750
+ * ordered alphabetically by name for consistent display. Empty results indicate
4751
+ * that your tenant either doesn't use organizational hierarchies or has no
4752
+ * organizations configured yet.
4753
+ *
4754
+ * Pagination is automatically applied to large result sets to ensure optimal
4755
+ * performance and reasonable response sizes.
4302
4756
  *
4303
4757
  * @generated from message producerflow.producer.v1.ListOrganizationsResponse
4304
4758
  */
4305
4759
  export type ListOrganizationsResponse = Message<"producerflow.producer.v1.ListOrganizationsResponse"> & {
4306
4760
  /**
4307
4761
  * List of organizations associated with the tenant.
4308
- * Each organization includes its unique identifier and display name.
4309
- * The list may be empty if no organizations are associated with the tenant.
4310
- * Organizations are ordered alphabetically by name.
4762
+ *
4763
+ * Each organization in the list includes:
4764
+ * - Unique identifier (id) for API operations
4765
+ * - Display name for user interfaces
4766
+ * - External ID for system integration
4767
+ * - Contact email (if configured)
4768
+ *
4769
+ * The list may be empty ([]) if:
4770
+ * - No organizations are configured for your tenant
4771
+ * - Your tenant doesn't use organizational hierarchies
4311
4772
  *
4312
4773
  * @generated from field: repeated producerflow.producer.v1.Organization organizations = 1;
4313
4774
  */
4314
4775
  organizations: Organization[];
4315
4776
  /**
4316
- * A token that can be sent as `page_token` to retrieve the next page.
4317
- * If this field is omitted, there are no subsequent pages.
4777
+ * Pagination token for retrieving the next page of results.
4778
+ *
4779
+ * When present, indicates more organizations are available. Pass this
4780
+ * token as the page_token in the next ListOrganizationsRequest to
4781
+ * retrieve the subsequent page.
4782
+ *
4783
+ * Empty string or omitted field indicates this is the last page.
4784
+ *
4785
+ * Important: Tokens are opaque and may expire. Don't store tokens
4786
+ * long-term; retrieve fresh data when needed.
4318
4787
  *
4319
4788
  * @generated from field: string next_page_token = 2;
4320
4789
  */
4321
4790
  nextPageToken: string;
4322
4791
  /**
4323
- * Total number of organizations matching the filter criteria.
4792
+ * Total count of organizations matching the filter criteria.
4793
+ *
4794
+ * This count represents the total number of organizations available
4795
+ * to your tenant, regardless of pagination. Use this to:
4796
+ * - Display result counts in user interfaces ("Showing 1-50 of 237")
4797
+ * - Calculate the number of pages available
4798
+ * - Determine if pagination is needed
4799
+ *
4800
+ * The count remains consistent across paginated requests unless
4801
+ * organizations are added or removed between calls.
4324
4802
  *
4325
4803
  * @generated from field: int32 total_count = 3;
4326
4804
  */
@@ -4332,14 +4810,26 @@ export type ListOrganizationsResponse = Message<"producerflow.producer.v1.ListOr
4332
4810
  */
4333
4811
  export declare const ListOrganizationsResponseSchema: GenMessage<ListOrganizationsResponse>;
4334
4812
  /**
4335
- * GetOrganizationRequest specifies which organization to retrieve.
4813
+ * GetOrganizationRequest specifies which organization to retrieve detailed information for.
4814
+ *
4815
+ * Use this request to fetch comprehensive details about a specific organization,
4816
+ * including all agencies assigned to it and their current status.
4336
4817
  *
4337
4818
  * @generated from message producerflow.producer.v1.GetOrganizationRequest
4338
4819
  */
4339
4820
  export type GetOrganizationRequest = Message<"producerflow.producer.v1.GetOrganizationRequest"> & {
4340
4821
  /**
4341
4822
  * Unique identifier of the organization to retrieve.
4342
- * Must be a valid UUID.
4823
+ *
4824
+ * This must be a valid UUID that was previously returned from:
4825
+ * - ListOrganizations response
4826
+ * - Agency creation response (when agency is assigned to an organization)
4827
+ * - Other API calls that reference organizations
4828
+ *
4829
+ * The organization must belong to your authenticated tenant; attempting
4830
+ * to access organizations from other tenants will result in a NOT_FOUND error.
4831
+ *
4832
+ * Format: Standard UUID v4 (e.g., "123e4567-e89b-12d3-a456-426614174000")
4343
4833
  *
4344
4834
  * @generated from field: string organization_id = 1;
4345
4835
  */
@@ -4351,13 +4841,13 @@ export type GetOrganizationRequest = Message<"producerflow.producer.v1.GetOrgani
4351
4841
  */
4352
4842
  export declare const GetOrganizationRequestSchema: GenMessage<GetOrganizationRequest>;
4353
4843
  /**
4354
- * GetOrganizationResponse contains the details of the requested organization.
4844
+ * GetOrganizationResponse contains details about the requested organization.
4355
4845
  *
4356
4846
  * @generated from message producerflow.producer.v1.GetOrganizationResponse
4357
4847
  */
4358
4848
  export type GetOrganizationResponse = Message<"producerflow.producer.v1.GetOrganizationResponse"> & {
4359
4849
  /**
4360
- * The requested organization.
4850
+ * The requested organization with all available details.
4361
4851
  *
4362
4852
  * @generated from field: producerflow.producer.v1.Organization organization = 1;
4363
4853
  */
@@ -4368,6 +4858,56 @@ export type GetOrganizationResponse = Message<"producerflow.producer.v1.GetOrgan
4368
4858
  * Use `create(GetOrganizationResponseSchema)` to create a new message.
4369
4859
  */
4370
4860
  export declare const GetOrganizationResponseSchema: GenMessage<GetOrganizationResponse>;
4861
+ /**
4862
+ * CreateOrganizationRequest contains the information needed to create a new organization.
4863
+ *
4864
+ * @generated from message producerflow.producer.v1.CreateOrganizationRequest
4865
+ */
4866
+ export type CreateOrganizationRequest = Message<"producerflow.producer.v1.CreateOrganizationRequest"> & {
4867
+ /**
4868
+ * Required. The display name of the organization.
4869
+ * Must be unique within the tenant.
4870
+ *
4871
+ * @generated from field: string name = 1;
4872
+ */
4873
+ name: string;
4874
+ /**
4875
+ * Optional. The external identifier for the organization.
4876
+ * This is the identifier used by the tenant's system to identify the organization.
4877
+ *
4878
+ * @generated from field: string external_id = 2;
4879
+ */
4880
+ externalId: string;
4881
+ /**
4882
+ * Optional. The contact email address for the organization.
4883
+ *
4884
+ * @generated from field: string email = 3;
4885
+ */
4886
+ email: string;
4887
+ };
4888
+ /**
4889
+ * Describes the message producerflow.producer.v1.CreateOrganizationRequest.
4890
+ * Use `create(CreateOrganizationRequestSchema)` to create a new message.
4891
+ */
4892
+ export declare const CreateOrganizationRequestSchema: GenMessage<CreateOrganizationRequest>;
4893
+ /**
4894
+ * CreateOrganizationResponse contains the result of creating a new organization.
4895
+ *
4896
+ * @generated from message producerflow.producer.v1.CreateOrganizationResponse
4897
+ */
4898
+ export type CreateOrganizationResponse = Message<"producerflow.producer.v1.CreateOrganizationResponse"> & {
4899
+ /**
4900
+ * The unique identifier of the newly created organization.
4901
+ *
4902
+ * @generated from field: string organization_id = 1;
4903
+ */
4904
+ organizationId: string;
4905
+ };
4906
+ /**
4907
+ * Describes the message producerflow.producer.v1.CreateOrganizationResponse.
4908
+ * Use `create(CreateOrganizationResponseSchema)` to create a new message.
4909
+ */
4910
+ export declare const CreateOrganizationResponseSchema: GenMessage<CreateOrganizationResponse>;
4371
4911
  /**
4372
4912
  * CreateProducerUploadURLRequest contains information needed to generate
4373
4913
  * a producer upload URL. This includes the agency NPN.
@@ -4776,34 +5316,58 @@ export type UnassignProducerFromLocationsResponse = Message<"producerflow.produc
4776
5316
  */
4777
5317
  export declare const UnassignProducerFromLocationsResponseSchema: GenMessage<UnassignProducerFromLocationsResponse>;
4778
5318
  /**
4779
- * EntityType defines the business entity type for an agency.
5319
+ * EntityType defines the business structure of an agency.
5320
+ *
5321
+ * This determines important business rules around NPNs, producers, and
5322
+ * onboarding requirements.
4780
5323
  *
4781
5324
  * @generated from enum producerflow.producer.v1.EntityType
4782
5325
  */
4783
5326
  export declare enum EntityType {
4784
5327
  /**
4785
5328
  * Default unspecified value. Do not use.
5329
+ * This value is invalid and will be rejected by the API.
4786
5330
  *
4787
5331
  * @generated from enum value: ENTITY_TYPE_UNSPECIFIED = 0;
4788
5332
  */
4789
5333
  UNSPECIFIED = 0,
4790
5334
  /**
4791
- * An individual producer operating as their own agency.
4792
- * For this type, an agency NPN is not allowed, and additional producers are not supported.
5335
+ * Sole proprietor: An individual insurance producer operating independently.
5336
+ *
5337
+ * Business Rules for Sole Proprietors:
5338
+ * - Cannot have a separate agency NPN (only the principal's NPN is used)
5339
+ * - Cannot have additional producers beyond the principal
5340
+ * - The principal producer IS the agency
5341
+ * - FEIN is optional
5342
+ *
5343
+ * Use this type for independent agents who operate alone.
4793
5344
  *
4794
5345
  * @generated from enum value: ENTITY_TYPE_SOLE_PROPRIETOR = 1;
4795
5346
  */
4796
5347
  SOLE_PROPRIETOR = 1,
4797
5348
  /**
4798
- * A standard insurance agency that can have multiple producers.
4799
- * For this type, either NPN or FEIN is required.
5349
+ * Standard insurance agency: A business entity with multiple producers.
5350
+ *
5351
+ * Business Rules for Agencies:
5352
+ * - Must provide either an agency NPN or FEIN (or both)
5353
+ * - Can have multiple producers in addition to the principal
5354
+ * - The agency is a separate legal entity from its producers
5355
+ * - Typically has business structure (LLC, Corporation, Partnership, etc.)
5356
+ *
5357
+ * Use this type for traditional insurance agencies with multiple agents.
4800
5358
  *
4801
5359
  * @generated from enum value: ENTITY_TYPE_AGENCY = 2;
4802
5360
  */
4803
5361
  AGENCY = 2,
4804
5362
  /**
4805
- * Ask during onboarding because the entity type is not known when the agency onboarding url is created.
4806
- * The UI will ask the user to select the entity type.
5363
+ * Dynamic determination: Let the user select during onboarding.
5364
+ *
5365
+ * Use this value only when generating onboarding URLs and you don't know
5366
+ * the entity type in advance. The onboarding form will present both options
5367
+ * and let the user choose.
5368
+ *
5369
+ * This value is ONLY valid for CreateAgencyOnboardingURL and will be rejected
5370
+ * by NewAgency and other direct creation endpoints.
4807
5371
  *
4808
5372
  * @generated from enum value: ENTITY_TYPE_ASK_DURING_ONBOARDING = 3;
4809
5373
  */
@@ -4884,26 +5448,73 @@ export declare enum NIPRSyncState {
4884
5448
  */
4885
5449
  export declare const NIPRSyncStateSchema: GenEnum<NIPRSyncState>;
4886
5450
  /**
4887
- * ProducerService provides a comprehensive API for managing insurance producers
4888
- * and agencies, including onboarding, data synchronization, and integration with
4889
- * external systems like NIPR for license verification.
5451
+ * ProducerService provides a comprehensive API for managing insurance
5452
+ * producers and agencies. This service simplifies producer and agency
5453
+ * onboarding, data synchronization, and integration with the National Insurance
5454
+ * Producer Registry (NIPR).
5455
+ *
5456
+ * Key capabilities:
5457
+ * - Producer and agency onboarding with self-service URLs
5458
+ * - Automatic synchronization of license, appointment, and regulatory data from NIPR
5459
+ * - NPN (National Producer Number) validation and lookup
5460
+ * - Multi-location management for agencies
5461
+ * - Integration with NIPR PDB Gateway, PDB Alerts, and NPN Lookup services
5462
+ *
5463
+ * NIPR Integration:
5464
+ * This service automatically fetches and maintains up-to-date licensing
5465
+ * information, carrier appointments, and regulatory actions from NIPR. Most
5466
+ * NIPR sync operations are billable and count against your monthly unique NPN
5467
+ * quota. Enable PDB Alerts synchronization to receive automatic daily updates
5468
+ * and reduce manual sync costs.
4890
5469
  *
4891
- * Available endpoints:
4892
- * UAT (User Acceptance Testing): https://api.uat.producerflow.com
4893
- * Production: https://api.producerflow.com
5470
+ * Authentication:
5471
+ * All endpoints require API key authentication provided via the Authorization header.
4894
5472
  *
4895
- * RPCs for starting the onboarding agency process.
5473
+ * Onboarding Operations
5474
+ * Generate self-service URLs and create agencies/producers with NIPR validation.
4896
5475
  *
4897
5476
  * @generated from service producerflow.producer.v1.ProducerService
4898
5477
  */
4899
5478
  export declare const ProducerService: GenService<{
4900
5479
  /**
4901
- * CreateAgencyOnboardingURL generates a URL that can be used to onboard a new agency.
4902
- * The URL contains encoded information about the agency defaults and tenant context.
4903
- * All fields in the request are optional - you can provide as much or as little
4904
- * information as available. Any missing information will be collected during
4905
- * the onboarding process.
4906
- * Returns a URL string that can be shared with the agency for self-onboarding.
5480
+ * CreateAgencyOnboardingURL generates a secure, pre-filled URL for agency
5481
+ * self-onboarding.
5482
+ *
5483
+ * Use this endpoint to create personalized onboarding links that can be
5484
+ * shared with agencies. The URL encodes agency defaults, tenant context, and
5485
+ * optional pre-filled information to streamline the onboarding experience.
5486
+ *
5487
+ * All fields in the request are optional. Provide as much or as little
5488
+ * information as available - any missing data will be collected through the
5489
+ * onboarding flow.
5490
+ *
5491
+ * Typical Workflow:
5492
+ * 1. Generate onboarding URL with optional pre-filled data (agency name, NPN,
5493
+ * principal info)
5494
+ * 2. Share URL with agency contact via email or portal
5495
+ * 3. Agency completes onboarding form through the URL
5496
+ * 4. System validates NPN with NIPR and creates agency record
5497
+ * 5. Optionally sync with NIPR to fetch licenses and appointments
5498
+ *
5499
+ * Validation Rules:
5500
+ * All fields in the request are optional. The system generates valid URLs
5501
+ * even with an empty request. When fields are provided:
5502
+ * - entity_type: Must be ENTITY_TYPE_SOLE_PROPRIETOR (1), ENTITY_TYPE_AGENCY (2),
5503
+ * or ENTITY_TYPE_ASK_DURING_ONBOARDING (3). This is the only endpoint where
5504
+ * ENTITY_TYPE_ASK_DURING_ONBOARDING is valid.
5505
+ * - email: Must be a valid email format if provided
5506
+ * - npn: Must be a valid NPN format (2-10 digits) if provided. Note that NPN
5507
+ * validation against NIPR occurs during onboarding, not during URL generation.
5508
+ * - fein: Must be exactly 9 digits if provided
5509
+ * - organization_id: Must be a valid organization ID belonging to your tenant if provided
5510
+ * - principal.email: Must be a valid email format if provided
5511
+ * - principal.npn: Must be a valid NPN format (2-10 digits) if provided
5512
+ * - principal.tenant_id: Maximum 255 characters if provided
5513
+ *
5514
+ * Returns:
5515
+ * A time-limited URL string that can be shared with the agency for
5516
+ * self-service onboarding.
5517
+ *
4907
5518
  *
4908
5519
  * @generated from rpc producerflow.producer.v1.ProducerService.CreateAgencyOnboardingURL
4909
5520
  */
@@ -4913,10 +5524,43 @@ export declare const ProducerService: GenService<{
4913
5524
  output: typeof CreateAgencyOnboardingURLResponseSchema;
4914
5525
  };
4915
5526
  /**
4916
- * CreateProducerOnboardingURL generates a secure, time-limited link for onboarding a new producer
4917
- * with optional pre-filled NPN. The URL can be shared directly with the producer.
4918
- * The generated URL will take the producer through the onboarding flow with the NPN field
4919
- * pre-populated if provided, reducing friction in the onboarding process.
5527
+ * CreateProducerOnboardingURL generates a secure, pre-filled URL for producer
5528
+ * self-onboarding.
5529
+ *
5530
+ * Use this endpoint to create personalized onboarding links for individual
5531
+ * producers joining an existing agency. The URL can include optional
5532
+ * pre-filled data like NPN, name, email, and address to reduce manual data
5533
+ * entry.
5534
+ *
5535
+ * The producer must be associated with an existing agency. Use
5536
+ * CreateAgencyOnboardingURL if you need to onboard an agency and its
5537
+ * principal together.
5538
+ *
5539
+ * Typical Workflow:
5540
+ * 1. Generate producer onboarding URL with agency_id and optional pre-filled data
5541
+ * 2. Share URL with producer via email
5542
+ * 3. Producer completes onboarding form through the URL
5543
+ * 4. System validates NPN with NIPR and associates producer with agency
5544
+ * 5. Optionally sync with NIPR to fetch producer licenses and appointments
5545
+ *
5546
+ * Validation Rules:
5547
+ * - agency_id: Required. must be a valid UUID of an agency belonging
5548
+ * to your tenant.
5549
+ * - producer_data: All fields are optional. When provided:
5550
+ * - npn: Must be a valid NPN format (1-10 characters). Note that NPN validation
5551
+ * against NIPR occurs during onboarding, not during URL generation.
5552
+ * - email: Must be a valid email format if provided
5553
+ * - mailing_address.state: Must be exactly 2 characters (state code) if provided
5554
+ * - mailing_address.zip: Must be 1-10 characters if provided
5555
+ *
5556
+ * Returns:
5557
+ * A time-limited URL string that can be shared with the producer for
5558
+ * self-service onboarding.
5559
+ *
5560
+ * Common Error Codes:
5561
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
5562
+ * - INVALID_ARGUMENT: Invalid NPN provided (not found in NIPR)
5563
+ *
4920
5564
  *
4921
5565
  * @generated from rpc producerflow.producer.v1.ProducerService.CreateProducerOnboardingURL
4922
5566
  */
@@ -4926,7 +5570,88 @@ export declare const ProducerService: GenService<{
4926
5570
  output: typeof CreateProducerOnboardingURLResponseSchema;
4927
5571
  };
4928
5572
  /**
4929
- * NewAgency creates a new agency, optionally with associated producers. It performs the following validation checks: Ensures all required fields are present and valid. Checks whether the NPN is already registered. Verifies agency and principal information with NIPR. Business rules: Sole proprietors can't have an agency NPN or additional producers. Regular agencies must provide either an NPN or a FEIN. If validation passes, it creates the agency, principal, and any producers. Returns the IDs of the created agency, principal, and producers.
5573
+ * NewAgency creates a new agency with principal and optional additional producers.
5574
+ *
5575
+ * This is the programmatic alternative to CreateAgencyOnboardingURL - use
5576
+ * this when you want to create agencies directly via API instead of through a
5577
+ * self-service form.
5578
+ *
5579
+ * Entity Type Rules:
5580
+ * - ENTITY_TYPE_SOLE_PROPRIETOR: Individual producer operating as their own agency.
5581
+ * Cannot have an agency NPN. Only the principal is created.
5582
+ * - ENTITY_TYPE_AGENCY: Standard insurance agency with multiple producers.
5583
+ * Must provide either an NPN or FEIN. Can have multiple producers beyond the principal.
5584
+ *
5585
+ * NIPR Validation and Sync:
5586
+ * The system performs free NIPR API lookups to validate NPNs before
5587
+ * creation. If sync_with_nipr is true (or tenant default), the system
5588
+ * performs paid NIPR EntityInfo lookups to fetch complete license, appointment,
5589
+ * and regulatory data.
5590
+ *
5591
+ * Validation Performed:
5592
+ * - Required fields are present and valid
5593
+ * - Email addresses are unique within tenant
5594
+ * - Agency NPN exists in NIPR (if provided)
5595
+ * - Principal NPN exists in NIPR
5596
+ * - Entity type rules are followed
5597
+ * - Principal and subsequent producers last names must match NIPR records for the given NPN
5598
+ *
5599
+ * Validation Rules:
5600
+ * Proto validation (format checks):
5601
+ * - agency: Required field containing all agency information
5602
+ * - agency.name: Required, must be non-empty
5603
+ * - agency.email: Required, must be a valid email format
5604
+ * - agency.phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
5605
+ * - agency.entity_type: Required, must be ENTITY_TYPE_SOLE_PROPRIETOR (1) or
5606
+ * ENTITY_TYPE_AGENCY (2). ENTITY_TYPE_ASK_DURING_ONBOARDING is NOT valid here.
5607
+ * - agency.fein: Optional, if provided must be exactly 9 digits. Required for
5608
+ * ENTITY_TYPE_AGENCY if NPN is not provided.
5609
+ * - agency.principal: Required, contains principal producer information
5610
+ * - principal.first_name: Required, must be non-empty
5611
+ * - principal.last_name: Required, must be non-empty
5612
+ * - principal.email: Required, must be a valid email format
5613
+ * - principal.npn: Required, must be 1-10 characters
5614
+ * - principal.phone: Optional, if provided must match E.164 pattern
5615
+ * - principal.tenant_id: Optional, maximum 255 characters
5616
+ * - agency.bank_account (optional, if provided all subfields are required):
5617
+ * - account_number: 8-17 characters
5618
+ * - routing_number: Exactly 9 characters
5619
+ * - account_type: Required, must be CHECKING (1) or SAVINGS (2)
5620
+ * - account_holder_name: Required, must be non-empty
5621
+ * - agency.eo_info (optional, if provided):
5622
+ * - carrier: Required, must be non-empty
5623
+ * - expiration_date: Required, must be in the future
5624
+ * - coverage_amount: Required, must be non-empty
5625
+ * - effective_date: Required
5626
+ * - per_occurrence: Required, must be non-empty
5627
+ * - agency.business_hours (optional, if provided):
5628
+ * - timezone: Required, must be non-empty
5629
+ * - business_hours: Required, at least one entry
5630
+ * - week_days: Required, 1-7 days
5631
+ * - opening_time: Required
5632
+ * - closing_time: Required
5633
+ * - agency.producers: Optional list of additional producers (see NewProducer validation)
5634
+ * - agency.points_of_contact (optional, for each contact):
5635
+ * - email: Required, must be a valid email format
5636
+ * - role: Required
5637
+ * - agency.root_organization_id: Optional, if provided must be 1-36 characters
5638
+ * - agency.locations: Optional, maximum 100 locations
5639
+ *
5640
+ * Business logic validation:
5641
+ * - agency.email: Must be unique within the tenant
5642
+ * - agency.npn: If provided, must exist in NIPR (validated via free NIPR lookup)
5643
+ * - principal.email: Must be unique within the tenant
5644
+ * - principal.npn: Must exist in NIPR (validated via free NIPR lookup)
5645
+ * - All producer emails must be unique within the tenant
5646
+ *
5647
+ * Returns:
5648
+ * IDs of the created agency, principal, optional producers, and locations (if provided).
5649
+ *
5650
+ * Common Error Codes:
5651
+ * - INVALID_ARGUMENT: Missing required fields, entity type rule violations, or
5652
+ * NPN not found in NIPR
5653
+ * - ALREADY_EXISTS: Email or NPN already registered in your tenant
5654
+ *
4930
5655
  *
4931
5656
  * @generated from rpc producerflow.producer.v1.ProducerService.NewAgency
4932
5657
  */
@@ -4936,8 +5661,41 @@ export declare const ProducerService: GenService<{
4936
5661
  output: typeof NewAgencyResponseSchema;
4937
5662
  };
4938
5663
  /**
4939
- * ListAgencies returns a list of agencies associated with the tenant.
4940
- * Supports optional filtering by organization ID and search queries.
5664
+ * ListAgencies retrieves a paginated list of agencies associated with the tenant.
5665
+ *
5666
+ * This endpoint provides comprehensive agency listing with powerful filtering
5667
+ * capabilities to efficiently manage and search through large numbers of
5668
+ * agencies. Each agency in the response includes summary information for
5669
+ * quick overview without the full NIPR data.
5670
+ *
5671
+ * Filtering Capabilities:
5672
+ * - Organization: Filter agencies belonging to a specific organization
5673
+ * - Search: Free-text search across agency name, NPN, and email
5674
+ * - Agency Type: Filter by internal (tenant) vs external agencies
5675
+ * - Entity Type: Filter by sole proprietor vs standard agency
5676
+ * - NIPR Sync Status: Filter by synchronization state (active, failing, pending, disabled)
5677
+ *
5678
+ * The response uses cursor-based pagination for efficient data retrieval:
5679
+ * - Default page size is 50 if not specified
5680
+ * - Maximum page size is 200
5681
+ * - Results are ordered by creation date, most recent first
5682
+ * - Use the next_page_token to retrieve subsequent pages
5683
+ *
5684
+ * Validation Rules:
5685
+ * All fields are optional filters:
5686
+ * - organization_id: If provided, must be a valid UUID format
5687
+ * - search_query: Optional free-text search string (case-insensitive, partial matching)
5688
+ * - pagination.page_size: Must be <= 200. Default is 50 if not specified.
5689
+ * - pagination.page_token: Opaque token from previous response for pagination
5690
+ * - agency_type: If provided, must be AGENCY_TYPE_INTERNAL (1) or AGENCY_TYPE_EXTERNAL (2)
5691
+ * - entity_type: If provided, must be ENTITY_TYPE_SOLE_PROPRIETOR (1) or ENTITY_TYPE_AGENCY (2)
5692
+ * - nipr_sync_statuses: Array of sync states to filter by (ACTIVE, FAILING, PENDING, DISABLED)
5693
+ *
5694
+ * Returns:
5695
+ * A paginated list of AgencySummary objects containing essential agency
5696
+ * information without full NIPR data. Use GetAgencyAndProducers for complete
5697
+ * agency details including NIPR data.
5698
+ *
4941
5699
  *
4942
5700
  * @generated from rpc producerflow.producer.v1.ProducerService.ListAgencies
4943
5701
  */
@@ -4947,9 +5705,28 @@ export declare const ProducerService: GenService<{
4947
5705
  output: typeof ListAgenciesResponseSchema;
4948
5706
  };
4949
5707
  /**
4950
- * ListOrganizations returns a list of organizations associated with the tenant.
4951
- * Organizations represent logical groupings or hierarchical structures within a tenant
4952
- * that can be used to organize agencies and producers.
5708
+ * ListOrganizations retrieves all organizations accessible to your tenant.
5709
+ *
5710
+ * Organizations represent logical groupings or hierarchical structures for
5711
+ * managing agencies. They enable better organization of agencies into business
5712
+ * units, networks, or aggregator relationships. Each
5713
+ * organization can contain multiple agencies, allowing for hierarchical
5714
+ * management and reporting across your insurance distribution network.
5715
+ *
5716
+ * Not all tenants use organizations - this list may be empty if your tenant
5717
+ * doesn't have organizational hierarchies enabled.
5718
+ *
5719
+ * Validation Rules:
5720
+ * Proto validation (format checks):
5721
+ * All fields are optional:
5722
+ * - pagination.page_size: Must be <= 200. Default is 50 if not specified.
5723
+ * - pagination.page_token: Opaque token from previous response for pagination
5724
+ *
5725
+ * Returns:
5726
+ * A list of all organizations accessible to your tenant, including their IDs,
5727
+ * names and external identifiers. Organizations are
5728
+ * returned in alphabetical order by name for consistent presentation.
5729
+ *
4953
5730
  *
4954
5731
  * @generated from rpc producerflow.producer.v1.ProducerService.ListOrganizations
4955
5732
  */
@@ -4959,8 +5736,25 @@ export declare const ProducerService: GenService<{
4959
5736
  output: typeof ListOrganizationsResponseSchema;
4960
5737
  };
4961
5738
  /**
4962
- * GetOrganization retrieves details of a specific organization by ID.
4963
- * Returns the organization's information including name and external ID.
5739
+ * GetOrganization retrieves comprehensive details about a specific organization.
5740
+ *
5741
+ * This endpoint returns complete organization information including all
5742
+ * agencies assigned to it. For each agency, it provides summary data including
5743
+ * appointment overview statistics and NIPR synchronization status. This allows
5744
+ * you to understand the full scope of an organization's agency network in a
5745
+ * single API call.
5746
+ *
5747
+ * Validation Rules:
5748
+ * Proto validation (format checks):
5749
+ * - organization_id: Required, must be a valid UUID format
5750
+ *
5751
+ * Returns:
5752
+ * Complete organization details including all assigned agencies with their
5753
+ * appointment overviews and sync statuses.
5754
+ *
5755
+ * Common Error Codes:
5756
+ * - NOT_FOUND: Organization doesn't exist or doesn't belong to tenant
5757
+ *
4964
5758
  *
4965
5759
  * @generated from rpc producerflow.producer.v1.ProducerService.GetOrganization
4966
5760
  */
@@ -4970,9 +5764,88 @@ export declare const ProducerService: GenService<{
4970
5764
  output: typeof GetOrganizationResponseSchema;
4971
5765
  };
4972
5766
  /**
4973
- * NewProducer creates a new producer and associates them with an existing agency.
4974
- * It validates the producer's information and checks that the email is unique.
4975
- * Returns the ID of the created producer.
5767
+ * CreateOrganization creates a new organization for the authenticated tenant.
5768
+ *
5769
+ * Organizations are top-level groupings used to organize agencies within your
5770
+ * tenant. They can represent business units, regions, or any logical grouping
5771
+ * that makes sense for your operations.
5772
+ *
5773
+ * Validation Rules:
5774
+ * Proto validation (format checks):
5775
+ * - name: Required, must be non-empty
5776
+ * - external_id: Optional, your system's identifier for the organization
5777
+ * - email: Optional, contact email for the organization
5778
+ *
5779
+ * Business logic validation:
5780
+ * - name: Must be unique within the tenant (case-insensitive)
5781
+ *
5782
+ * Returns:
5783
+ * The UUID of the newly created organization, which can be used to assign
5784
+ * agencies to this organization.
5785
+ *
5786
+ * Common Error Codes:
5787
+ * - ALREADY_EXISTS: Organization with the same name already exists in tenant
5788
+ *
5789
+ *
5790
+ * @generated from rpc producerflow.producer.v1.ProducerService.CreateOrganization
5791
+ */
5792
+ createOrganization: {
5793
+ methodKind: "unary";
5794
+ input: typeof CreateOrganizationRequestSchema;
5795
+ output: typeof CreateOrganizationResponseSchema;
5796
+ };
5797
+ /**
5798
+ * NewProducer adds a single producer to an existing agency.
5799
+ *
5800
+ * Use this endpoint to programmatically add producers to agencies. This is
5801
+ * the programmatic alternative to CreateProducerOnboardingURL.
5802
+ *
5803
+ * NIPR Validation and Sync:
5804
+ * The system validates the provided NPN exists in NIPR using a free API
5805
+ * lookup. If sync_with_nipr is enabled, the system performs a paid NIPR
5806
+ * EntityInfo lookup to fetch complete license, appointment, and regulatory
5807
+ * data.
5808
+ *
5809
+ * Validation Performed:
5810
+ * - Email is unique within tenant
5811
+ * - Agency exists and belongs to tenant
5812
+ * - NPN exists in NIPR
5813
+ * - Location IDs exist and belong to the agency (if provided)
5814
+ *
5815
+ * Validation Rules:
5816
+ * Proto validation (format checks):
5817
+ * - agency_id: Required, must be a valid UUID format
5818
+ * - producer: Required, contains producer information
5819
+ * - first_name: Required, must be non-empty
5820
+ * - last_name: Required, must be non-empty
5821
+ * - email: Required, must be a valid email format
5822
+ * - npn: Required, used for NIPR validation
5823
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
5824
+ * - mailing_address (optional, if provided):
5825
+ * - street: Required, must be non-empty
5826
+ * - city: Required, must be non-empty
5827
+ * - state: Required, must be exactly 2 characters (state code)
5828
+ * - zip: Required, must be 1-10 characters
5829
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
5830
+ * - location_ids: Optional, maximum 100 items, each must be a valid UUID
5831
+ * - sync_with_nipr: Optional, overrides tenant default NIPR sync setting
5832
+ *
5833
+ * Business logic validation:
5834
+ * - agency_id: Agency must exist and belong to the authenticated tenant
5835
+ * - email: Must be unique within the tenant (not already used by another producer or contact)
5836
+ * - npn: Must exist in NIPR and the provided last name must match the NIPR records
5837
+ * - npn: Must be unique within the tenant (not already assigned to another producer)
5838
+ * - location_ids: All locations must exist and belong to the specified agency
5839
+ *
5840
+ * Returns:
5841
+ * The UUID of the created producer.
5842
+ *
5843
+ * Common Error Codes:
5844
+ * - NOT_FOUND: Agency doesn't exist or producer NPN not found in NIPR
5845
+ * - ALREADY_EXISTS: Producer with email or NPN already exists in tenant
5846
+ * - INVALID_ARGUMENT: Producer NPN is required (when NPN validation is enabled)
5847
+ * - FAILED_PRECONDITION: Producer name does not match NIPR records for the provided NPN
5848
+ *
4976
5849
  *
4977
5850
  * @generated from rpc producerflow.producer.v1.ProducerService.NewProducer
4978
5851
  */
@@ -4982,9 +5855,68 @@ export declare const ProducerService: GenService<{
4982
5855
  output: typeof NewProducerResponseSchema;
4983
5856
  };
4984
5857
  /**
4985
- * NewProducers creates multiple producers and associates them with the specified agency.
4986
- * It performs the same validations as NewProducer for each entry.
4987
- * Returns the IDs of all created producers.
5858
+ * NewProducers creates multiple producers in bulk and associates them with a single agency.
5859
+ *
5860
+ * This endpoint provides an efficient way to onboard multiple producers to the same
5861
+ * agency in a single API call.
5862
+ *
5863
+ * Bulk Operation Behavior:
5864
+ * Producers are created sequentially. If a producer fails validation, the request
5865
+ * returns an error, but any producers created before the failure will remain in
5866
+ * the system. Each producer in the request undergoes the same validation as
5867
+ * individual NewProducer calls.
5868
+ *
5869
+ * NIPR Validation and Sync:
5870
+ * For each producer:
5871
+ * - The system performs a free NIPR API lookup to validate the NPN exists
5872
+ * - If sync_with_nipr is true (or tenant default), performs paid NIPR EntityInfo lookups
5873
+ * - All NIPR validations must succeed for the bulk operation to proceed
5874
+ *
5875
+ * Validation Performed (for each producer):
5876
+ * - Required fields are present and valid (name, email, NPN)
5877
+ * - Email addresses are unique within the tenant
5878
+ * - Agency exists and belongs to the authenticated tenant
5879
+ * - NPNs exist in NIPR
5880
+ * - Location IDs exist and belong to the agency (if provided)
5881
+ * - Phone numbers match valid patterns (if provided)
5882
+ *
5883
+ * Validation Rules:
5884
+ * Proto validation (format checks):
5885
+ * - agency_id: Required, must be a valid UUID format
5886
+ * - producers: Required, must contain at least 1 producer. Each producer:
5887
+ * - first_name: Required, must be non-empty
5888
+ * - last_name: Required, must be non-empty
5889
+ * - email: Required, must be a valid email format
5890
+ * - npn: Required, used for NIPR validation
5891
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
5892
+ * - mailing_address (optional, if provided):
5893
+ * - street: Required, must be non-empty
5894
+ * - city: Required, must be non-empty
5895
+ * - state: Required, must be exactly 2 characters (state code)
5896
+ * - zip: Required, must be 1-10 characters
5897
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
5898
+ * - location_ids: Optional, maximum 100 items per producer, each must be a valid UUID
5899
+ * - sync_with_nipr: Optional, overrides tenant default NIPR sync setting for all producers
5900
+ *
5901
+ * Business logic validation:
5902
+ * - agency_id: Agency must exist and belong to the authenticated tenant
5903
+ * - All producer emails must be unique within the tenant
5904
+ * - All producer NPNs must exist in NIPR, match the provided last name, and be unique within the tenant
5905
+ * - All location_ids must exist and belong to the specified agency
5906
+ * - This is an all-or-nothing operation: if any producer fails validation, no producers
5907
+ * are created
5908
+ *
5909
+ * Returns:
5910
+ * List of UUIDs for all created producers in the same order as the request. This
5911
+ * ordering guarantee allows you to map request entries to their created IDs.
5912
+ *
5913
+ * Common Error Codes:
5914
+ * - NOT_FOUND: Agency doesn't exist or producer NPN not found in NIPR
5915
+ * - ALREADY_EXISTS: Producer with email or NPN already exists in tenant
5916
+ * - INVALID_ARGUMENT: Producer NPN is required (when NPN validation is enabled)
5917
+ * - FAILED_PRECONDITION: Producer name does not match NIPR records for the provided NPN
5918
+ * - PERMISSION_DENIED: Agency doesn't belong to the authenticated tenant
5919
+ *
4988
5920
  *
4989
5921
  * @generated from rpc producerflow.producer.v1.ProducerService.NewProducers
4990
5922
  */
@@ -4994,8 +5926,29 @@ export declare const ProducerService: GenService<{
4994
5926
  output: typeof NewProducersResponseSchema;
4995
5927
  };
4996
5928
  /**
4997
- * GetAgencyAndProducers retrieves details for an agency and all associated producers.
4998
- * Returns the agency information and a list of producers.
5929
+ * GetAgencyAndProducers retrieves complete information for an agency and all
5930
+ * its producers.
5931
+ *
5932
+ * This endpoint returns comprehensive agency details including:
5933
+ * - Agency contact information and business details
5934
+ * - Principal producer information
5935
+ * - Bank account for commission payments
5936
+ * - Errors & Omissions insurance details
5937
+ * - Business hours and contact points
5938
+ * - NIPR synchronized data (licenses, appointments, regulatory actions, addresses)
5939
+ * - All associated producers with their NIPR data
5940
+ * - Agency locations
5941
+ *
5942
+ * Validation Rules:
5943
+ * Proto validation (format checks):
5944
+ * - agency_id: Required, must be a valid UUID format
5945
+ *
5946
+ * Returns:
5947
+ * Agency object with complete NIPR data and list of all associated producers.
5948
+ *
5949
+ * Common Error Codes:
5950
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
5951
+ *
4999
5952
  *
5000
5953
  * @generated from rpc producerflow.producer.v1.ProducerService.GetAgencyAndProducers
5001
5954
  */
@@ -5006,8 +5959,38 @@ export declare const ProducerService: GenService<{
5006
5959
  };
5007
5960
  /**
5008
5961
  * GetProducer retrieves detailed information about a specific producer.
5009
- * The producer can be found by ID, NPN, or email.
5010
- * Returns the producer's information, including NIPR data and agency association.
5962
+ *
5963
+ * Supports three lookup methods:
5964
+ * - By producer ID (UUID)
5965
+ * - By NPN (National Producer Number)
5966
+ * - By email address
5967
+ *
5968
+ * The response includes:
5969
+ * - Producer contact information (name, email, phone, address)
5970
+ * - Associated agency information
5971
+ * - NIPR synchronized data:
5972
+ * - State licenses with expiration dates and Lines of Authority (LOAs)
5973
+ * - Biographic information (name, DOB, state of domicile)
5974
+ * - Regulatory actions by state
5975
+ * - Carrier appointments with status and renewal dates
5976
+ * - Location assignments
5977
+ *
5978
+ * Validation Rules:
5979
+ * Proto validation (format checks):
5980
+ * Exactly one lookup method must be provided (oneof required):
5981
+ * - producer_id_lookup.producer_id: Must be a valid UUID format
5982
+ * - npn_lookup.producer_npn: Must be non-empty string
5983
+ * - email_lookup.email: Must be a valid email format
5984
+ *
5985
+ * Returns:
5986
+ * Complete producer information including all NIPR data.
5987
+ *
5988
+ * Common Error Codes:
5989
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant, or
5990
+ * associated agency not found
5991
+ * - UNIMPLEMENTED: Lookup method not supported (only producer_id, npn, and email
5992
+ * lookups are implemented)
5993
+ *
5011
5994
  *
5012
5995
  * @generated from rpc producerflow.producer.v1.ProducerService.GetProducer
5013
5996
  */
@@ -5017,7 +6000,28 @@ export declare const ProducerService: GenService<{
5017
6000
  output: typeof GetProducerResponseSchema;
5018
6001
  };
5019
6002
  /**
5020
- * GetAgencyFiles returns URLs for accessing files associated with an agency, such as contracts.
6003
+ * GetAgencyFiles retrieves signed URLs for accessing agency documents.
6004
+ *
6005
+ * Returns pre-signed URLs for the following document types:
6006
+ * - Errors & Omissions (E&O) insurance certificate
6007
+ * - Voided check for ACH commission payments
6008
+ * - W9 tax form
6009
+ * - License documents
6010
+ * - Broker bond documents
6011
+ *
6012
+ * The URLs are time-limited and grant temporary read access to the documents.
6013
+ * Empty strings are returned for documents that haven't been uploaded.
6014
+ *
6015
+ * Validation Rules:
6016
+ * Proto validation (format checks):
6017
+ * - agency_id: Required, must be a valid UUID format
6018
+ *
6019
+ * Returns:
6020
+ * A set of pre-signed URLs for accessing agency documents.
6021
+ *
6022
+ * Common Error Codes:
6023
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6024
+ *
5021
6025
  *
5022
6026
  * @generated from rpc producerflow.producer.v1.ProducerService.GetAgencyFiles
5023
6027
  */
@@ -5027,11 +6031,49 @@ export declare const ProducerService: GenService<{
5027
6031
  output: typeof GetAgencyFilesResponseSchema;
5028
6032
  };
5029
6033
  /**
5030
- * UpdateProducer updates information for an existing producer.
5031
- * Supports updating contact details, background check responses,
5032
- * employment history, and non-uniform licensing questions.
5033
- * Information from NIPR and other third-party sources cannot be updated.
5034
- * Validates email uniqueness if the email is changed.
6034
+ * UpdateProducer updates editable fields for an existing producer.
6035
+ *
6036
+ * Only information collected during onboarding can be updated via this
6037
+ * endpoint. NIPR-sourced data (licenses, appointments, regulatory actions) is
6038
+ * read-only and can only be updated by triggering a NIPR sync via
6039
+ * SyncProducerWithNIPR.
6040
+ *
6041
+ * Updatable Fields:
6042
+ * - Contact information (first_name, last_name, middle_name, email, phone)
6043
+ * - Mailing address (street, city, state, zip)
6044
+ * - External metadata (for tenant-specific data)
6045
+ *
6046
+ * Note: NPN cannot be updated after creation. The NPN field is deprecated
6047
+ * in UpdateProducerRequest.Producer and will be ignored.
6048
+ *
6049
+ * Validation:
6050
+ * - Email must be unique within tenant if changed
6051
+ * - All field format validations apply (e.g., valid email format, phone pattern)
6052
+ *
6053
+ * Validation Rules:
6054
+ * Proto validation (format checks):
6055
+ * - producer_id: Required, must be a valid UUID format
6056
+ * - producer: Required, contains fields to update (all fields optional):
6057
+ * - first_name: If provided, must be non-empty
6058
+ * - last_name: If provided, must be non-empty
6059
+ * - middle_name: If provided, must be non-empty
6060
+ * - email: If provided, must be a valid email format
6061
+ * - npn: Deprecated and ignored - NPN cannot be updated after creation
6062
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6063
+ * - street: If provided, must be non-empty
6064
+ * - city: If provided, must be non-empty
6065
+ * - state: If provided, must be at most 2 characters
6066
+ * - zip: If provided, must be at least 5 characters
6067
+ * - external_metadata: Map of key-value pairs for tenant-specific data
6068
+ *
6069
+ *
6070
+ * Returns:
6071
+ * Empty response on success.
6072
+ *
6073
+ * Common Error Codes:
6074
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6075
+ * - INVALID_ARGUMENT: Producer field is missing in request
6076
+ *
5035
6077
  *
5036
6078
  * @generated from rpc producerflow.producer.v1.ProducerService.UpdateProducer
5037
6079
  */
@@ -5041,12 +6083,59 @@ export declare const ProducerService: GenService<{
5041
6083
  output: typeof UpdateProducerResponseSchema;
5042
6084
  };
5043
6085
  /**
5044
- * UpdateAgency updates information for an existing agency.
5045
- * Supports updating contact details (email, phone, fax), website, physical address,
5046
- * requested appointments, and notes.
5047
- * Information from NIPR and other third-party sources cannot be updated.
6086
+ * UpdateAgency updates editable fields for an existing agency.
6087
+ *
6088
+ * Only information collected during onboarding can be updated via this
6089
+ * endpoint. NIPR-sourced data (licenses, appointments, regulatory actions) is
6090
+ * read-only and can only be updated by triggering a NIPR sync via
6091
+ * SyncAgencyWithNIPR.
6092
+ *
6093
+ * Updatable Fields:
6094
+ * - Contact details (email, phone, fax)
6095
+ * - Website URL
6096
+ * - Physical address components
6097
+ * - Requested appointments (state codes)
6098
+ * - Notes
6099
+ * - External metadata (for tenant-specific data)
6100
+ *
5048
6101
  * All fields are optional - only provide the fields you want to update.
5049
- * Validates email uniqueness if the email is changed.
6102
+ * Unchanged fields retain their current values.
6103
+ *
6104
+ * Validation:
6105
+ * - Email must be unique within tenant if changed
6106
+ * - All field format validations apply
6107
+ *
6108
+ * Validation Rules:
6109
+ * Proto validation (format checks):
6110
+ * - agency_id: Required, must be a valid UUID format
6111
+ * - agency: Required, contains fields to update (all fields optional):
6112
+ * - email: If provided, must be a valid email format
6113
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6114
+ * - fax: If provided, must match E.164 pattern
6115
+ * - website: If provided, must be a valid URI format
6116
+ * - requested_appointments: Array of unique 2-letter state codes (e.g., ["CA", "NY"])
6117
+ * - notes: If provided, maximum 500 characters
6118
+ * - physical_address (optional, if provided):
6119
+ * - street: If provided, must be non-empty
6120
+ * - city: If provided, must be non-empty
6121
+ * - state: If provided, must be exactly 2 characters
6122
+ * - zip: If provided, must be 1-10 characters
6123
+ * - external_metadata: Map of key-value pairs for tenant-specific data
6124
+ *
6125
+ * Business logic validation:
6126
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6127
+ * - email: If changed, must be unique within the tenant (case-insensitive comparison)
6128
+ * - phone: If provided, must be a valid phone number format
6129
+ *
6130
+ * Returns:
6131
+ * Empty response on success.
6132
+ *
6133
+ * Common Error Codes:
6134
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6135
+ * - ALREADY_EXISTS: Email already exists within tenant
6136
+ * - INVALID_ARGUMENT: Invalid phone number format or all address fields required
6137
+ * when creating new address
6138
+ *
5050
6139
  *
5051
6140
  * @generated from rpc producerflow.producer.v1.ProducerService.UpdateAgency
5052
6141
  */
@@ -5057,8 +6146,48 @@ export declare const ProducerService: GenService<{
5057
6146
  };
5058
6147
  /**
5059
6148
  * NewContact creates a new contact associated with an agency.
5060
- * Contacts represent non-producer individuals linked to the agency.
5061
- * Returns the ID of the created contact.
6149
+ *
6150
+ * Use this endpoint to programmatically add non-producer individuals to
6151
+ * agencies. Contacts represent staff members, administrators, or other
6152
+ * personnel who are not licensed insurance producers but need to be
6153
+ * associated with the agency for communication or administrative purposes.
6154
+ *
6155
+ * Validation Performed:
6156
+ * - Agency exists and belongs to the authenticated tenant
6157
+ * - Email is unique within the tenant (across both producers and contacts)
6158
+ * - Required fields are present and valid (first name, last name, email, role)
6159
+ * - Phone number matches valid pattern (if provided)
6160
+ *
6161
+ * Validation Rules:
6162
+ * Proto validation (format checks):
6163
+ * - agency_id: Required, must be a valid UUID format
6164
+ * - contact: Required, contains contact information:
6165
+ * - first_name: Required, must be non-empty
6166
+ * - last_name: Required, must be non-empty
6167
+ * - email: Required, must be a valid email format
6168
+ * - role: Required, must be non-empty
6169
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
6170
+ * - middle_name: Optional
6171
+ * - address (optional, if provided):
6172
+ * - street: Required, must be non-empty
6173
+ * - city: Required, must be non-empty
6174
+ * - state: Required, must be exactly 2 characters (state code)
6175
+ * - zip: Required, must be 1-10 characters
6176
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
6177
+ * - npn: Optional
6178
+ *
6179
+ * Business logic validation:
6180
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6181
+ * - email: Must be unique within the tenant (not already used by another producer or contact)
6182
+ *
6183
+ * Returns:
6184
+ * The UUID of the created contact.
6185
+ *
6186
+ * Common Error Codes:
6187
+ * - INVALID_ARGUMENT: Missing required fields or invalid field format
6188
+ * - ALREADY_EXISTS: Email already registered in your tenant
6189
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6190
+ *
5062
6191
  *
5063
6192
  * @generated from rpc producerflow.producer.v1.ProducerService.NewContact
5064
6193
  */
@@ -5068,9 +6197,59 @@ export declare const ProducerService: GenService<{
5068
6197
  output: typeof NewContactResponseSchema;
5069
6198
  };
5070
6199
  /**
5071
- * NewContacts creates multiple contacts in a single request.
5072
- * Each contact is associated with the specified agency.
5073
- * Returns the IDs of all created contacts.
6200
+ * NewContacts creates multiple contacts in bulk and associates them with a
6201
+ * single agency.
6202
+ *
6203
+ * This endpoint provides an efficient way to add multiple non-producer
6204
+ * contacts to the same agency in a single API call. Contacts represent staff
6205
+ * members, administrators, or other personnel who are not licensed insurance
6206
+ * producers.
6207
+ *
6208
+ * Partial Success Behavior:
6209
+ * Unlike bulk producer operations, this endpoint uses partial success
6210
+ * semantics. Contacts that pass validation are created even if other contacts
6211
+ * in the request fail. The response contains only the IDs of successfully
6212
+ * created contacts.
6213
+ *
6214
+ * Validation Performed (for each contact):
6215
+ * - Agency exists and belongs to the authenticated tenant
6216
+ * - Email is unique within the tenant (across both producers and contacts)
6217
+ * - Required fields are present and valid (first name, last name, email, role)
6218
+ * - Phone number matches valid pattern (if provided)
6219
+ *
6220
+ * Validation Rules:
6221
+ * Proto validation (format checks):
6222
+ * - agency_id: Required, must be a valid UUID format
6223
+ * - contacts: Required, must contain at least 1 contact. Each contact:
6224
+ * - first_name: Required, must be non-empty
6225
+ * - last_name: Required, must be non-empty
6226
+ * - email: Required, must be a valid email format
6227
+ * - role: Required, must be non-empty
6228
+ * - phone: Optional, if provided must match E.164 pattern (e.g., +15551234567)
6229
+ * - middle_name: Optional
6230
+ * - address (optional, if provided):
6231
+ * - street: Required, must be non-empty
6232
+ * - city: Required, must be non-empty
6233
+ * - state: Required, must be exactly 2 characters (state code)
6234
+ * - zip: Required, must be 1-10 characters
6235
+ * - tenant_id: Optional, maximum 255 characters (external identifier)
6236
+ * - npn: Optional
6237
+ *
6238
+ * Business logic validation:
6239
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6240
+ * - Each contact email: Must be unique within the tenant. Contacts with duplicate
6241
+ * emails are skipped (partial success - other valid contacts are still created)
6242
+ *
6243
+ * Returns:
6244
+ * List of UUIDs for successfully created contacts. If some contacts failed
6245
+ * validation, only the IDs of successfully created contacts are returned.
6246
+ * Failed contacts are logged but not included in the response. The order of
6247
+ * returned IDs corresponds to the order of successful contacts, not the
6248
+ * original request order.
6249
+ *
6250
+ * Common Error Codes:
6251
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6252
+ *
5074
6253
  *
5075
6254
  * @generated from rpc producerflow.producer.v1.ProducerService.NewContacts
5076
6255
  */
@@ -5081,7 +6260,30 @@ export declare const ProducerService: GenService<{
5081
6260
  };
5082
6261
  /**
5083
6262
  * ListAgencyContacts retrieves all contacts associated with an agency.
5084
- * Returns a list of contacts with their full details.
6263
+ *
6264
+ * Use this endpoint to fetch all non-producer contacts linked to a specific
6265
+ * agency. Contacts represent staff members, administrators, or other
6266
+ * personnel who are not licensed insurance producers but are associated with
6267
+ * the agency.
6268
+ *
6269
+ * The response includes complete contact information:
6270
+ * - Personal details (name, email, phone)
6271
+ * - Role within the agency
6272
+ * - Mailing address
6273
+ * - NPN (if applicable)
6274
+ * - Creation timestamp
6275
+ *
6276
+ * Validation Rules:
6277
+ * Proto validation (format checks):
6278
+ * - agency_id: Required, must be a valid UUID format
6279
+ *
6280
+ * Returns:
6281
+ * A list of all contacts associated with the specified agency. Returns an
6282
+ * empty list if the agency has no contacts.
6283
+ *
6284
+ * Common Error Codes:
6285
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6286
+ *
5085
6287
  *
5086
6288
  * @generated from rpc producerflow.producer.v1.ProducerService.ListAgencyContacts
5087
6289
  */
@@ -5091,8 +6293,55 @@ export declare const ProducerService: GenService<{
5091
6293
  output: typeof ListAgencyContactsResponseSchema;
5092
6294
  };
5093
6295
  /**
5094
- * SetExternalID sets an external identifier for a producer or contact.
5095
- * Useful for integrating with external systems that use different ID schemes.
6296
+ * SetExternalID sets an external identifier for a producer, agency, contact,
6297
+ * or organization.
6298
+ *
6299
+ * Use this endpoint to link ProducerFlow entities to corresponding records in
6300
+ * your external systems (CRM, AMS, legacy databases). This enables bi-directional
6301
+ * synchronization and lookups across systems.
6302
+ *
6303
+ * Supported Entity Types:
6304
+ * - Producer: Links a producer to an external system record
6305
+ * - Agency: Links an agency to an external system record
6306
+ * - Contact: Links a contact to an external system record
6307
+ * - Organization: Links an organization to an external system record
6308
+ *
6309
+ * Exactly one entity type must be specified per request.
6310
+ *
6311
+ * Validation Performed:
6312
+ * - Exactly one entity ID is provided (producer_id, agency_id, contact_id, or organization_id)
6313
+ * - The external ID (tenant_id) is non-empty and at most 255 characters
6314
+ * - The external ID is unique within the tenant (not already assigned to another entity)
6315
+ * - The specified entity exists and belongs to the authenticated tenant
6316
+ *
6317
+ * Validation Rules:
6318
+ * Proto validation (format checks):
6319
+ * Exactly one entity ID must be provided (oneof required):
6320
+ * - producer_id: Must be a valid UUID format
6321
+ * - agency_id: Must be a valid UUID format
6322
+ * - contact_id: Must be a valid UUID format
6323
+ * - organization_id: Must be a valid UUID format
6324
+ *
6325
+ * Required field:
6326
+ * - tenant_id: Required, must be 1-255 characters (the external identifier to assign)
6327
+ *
6328
+ * Business logic validation:
6329
+ * - tenant_id: Must be unique within the tenant (not already assigned to any other entity)
6330
+ * - Entity must exist and belong to the authenticated tenant:
6331
+ * - Producer: Verified via tenant-scoped lookup
6332
+ * - Contact: Verified via tenant-scoped lookup
6333
+ * - Agency: Verified via tenant-scoped lookup and tenant ownership check
6334
+ * - Organization: Verified via tenant-scoped lookup and tenant ownership check
6335
+ *
6336
+ * Returns:
6337
+ * Empty response on success.
6338
+ *
6339
+ * Common Error Codes:
6340
+ * - INVALID_ARGUMENT: No entity ID provided or external ID validation failed
6341
+ * - NOT_FOUND: The specified entity doesn't exist or doesn't belong to tenant
6342
+ * - ALREADY_EXISTS: The external ID is already assigned to another entity in the tenant
6343
+ * - PERMISSION_DENIED: The entity doesn't belong to the authenticated tenant
6344
+ *
5096
6345
  *
5097
6346
  * @generated from rpc producerflow.producer.v1.ProducerService.SetExternalID
5098
6347
  */
@@ -5102,9 +6351,36 @@ export declare const ProducerService: GenService<{
5102
6351
  output: typeof SetExternalIDResponseSchema;
5103
6352
  };
5104
6353
  /**
5105
- * ValidateProducerNPN checks whether a producers National Producer Number (NPN) is valid.
5106
- * It performs a lookup against NIPR and applies internal validation rules.
5107
- * Returns a validity flag and any associated error messages.
6354
+ * ValidateProducerNPN checks whether a producer's National Producer Number (NPN)
6355
+ * exists in NIPR.
6356
+ *
6357
+ * Use this endpoint to verify an NPN is valid before creating a producer. This
6358
+ * is a free NIPR API lookup that does not count against your monthly billing
6359
+ * quota.
6360
+ *
6361
+ * Validation Modes:
6362
+ * - NPN only: Validates that the NPN exists in NIPR
6363
+ * - NPN with name: Validates that the NPN exists AND the name matches the NIPR
6364
+ * record (recommended for additional verification)
6365
+ *
6366
+ * NIPR Billing:
6367
+ * This is a FREE operation. It uses the NIPR NPN Lookup service which does not
6368
+ * incur charges, unlike the other NIPR entity lookups used during sync operations.
6369
+ *
6370
+ * Validation Rules:
6371
+ * Proto validation (format checks):
6372
+ * - npn: Required, must be non-empty string
6373
+ * - name: Optional, if provided validates NPN matches this producer name in NIPR
6374
+ *
6375
+ * Business logic validation:
6376
+ * - NPN is validated against NIPR database via free NIPR NPN Lookup API
6377
+ * - If name is provided, both NPN and name must match a producer record in NIPR
6378
+ * - If name is not provided, only NPN existence is verified
6379
+ *
6380
+ * Returns:
6381
+ * A boolean indicating whether the NPN is valid. Returns true if the NPN exists
6382
+ * in NIPR (and name matches, if provided), false otherwise.
6383
+ *
5108
6384
  *
5109
6385
  * @generated from rpc producerflow.producer.v1.ProducerService.ValidateProducerNPN
5110
6386
  */
@@ -5114,9 +6390,29 @@ export declare const ProducerService: GenService<{
5114
6390
  output: typeof ValidateProducerNPNResponseSchema;
5115
6391
  };
5116
6392
  /**
5117
- * ValidateAgencyNPN checks whether an agencys National Producer Number (NPN) is valid.
5118
- * It performs a lookup against NIPR and applies internal validation rules.
5119
- * Returns a validity flag and any associated error messages.
6393
+ * ValidateAgencyNPN checks whether an agency's National Producer Number (NPN)
6394
+ * exists in NIPR.
6395
+ *
6396
+ * Use this endpoint to verify an agency NPN is valid before creating an agency.
6397
+ * This is a free NIPR API lookup that does not count against your monthly
6398
+ * billing quota.
6399
+ *
6400
+ * NIPR Billing:
6401
+ * This is a FREE operation. It uses the NIPR NPN Lookup service which does not
6402
+ * incur charges, unlike the NIPR entity lookups used during sync operations.
6403
+ *
6404
+ * Validation Rules:
6405
+ * Proto validation (format checks):
6406
+ * - npn: Required, must be non-empty string
6407
+ *
6408
+ * Business logic validation:
6409
+ * - NPN is validated against NIPR database via free NIPR NPN Lookup API
6410
+ * - Agency NPN must exist in NIPR's agency records
6411
+ *
6412
+ * Returns:
6413
+ * A boolean indicating whether the agency NPN is valid. Returns true if the NPN
6414
+ * exists in NIPR, false otherwise.
6415
+ *
5120
6416
  *
5121
6417
  * @generated from rpc producerflow.producer.v1.ProducerService.ValidateAgencyNPN
5122
6418
  */
@@ -5126,9 +6422,31 @@ export declare const ProducerService: GenService<{
5126
6422
  output: typeof ValidateAgencyNPNResponseSchema;
5127
6423
  };
5128
6424
  /**
5129
- * LookupNPNByFEIN finds an NPN using a Federal Employer Identification Number.
5130
- * Used to help agencies that know their FEIN but not their NPN.
5131
- * Returns the NPN if found or an error message.
6425
+ * LookupNPNByFEIN finds an agency's NPN using their Federal Employer
6426
+ * Identification Number (FEIN).
6427
+ *
6428
+ * Use this endpoint to help agencies discover their NPN when they only know
6429
+ * their FEIN. This is common during onboarding when agencies may not have
6430
+ * their NPN readily available but know their tax identification number.
6431
+ *
6432
+ * NIPR Billing:
6433
+ * This is a FREE operation. It uses the NIPR NPN Lookup service which does not
6434
+ * incur charges, unlike the EntityInfo lookups used during sync operations.
6435
+ *
6436
+ * Validation Rules:
6437
+ * Proto validation (format checks):
6438
+ * - fein: Required, must be exactly 9 characters
6439
+ *
6440
+ * Business logic validation:
6441
+ * - FEIN is looked up against NIPR database via free NIPR NPN Lookup API
6442
+ * - Agency with the given FEIN must exist in NIPR's records
6443
+ *
6444
+ * Returns:
6445
+ * The agency's NPN if found in NIPR.
6446
+ *
6447
+ * Common Error Codes:
6448
+ * - NOT_FOUND: No agency found in NIPR with the given FEIN
6449
+ *
5132
6450
  *
5133
6451
  * @generated from rpc producerflow.producer.v1.ProducerService.LookupNPNByFEIN
5134
6452
  */
@@ -5138,7 +6456,13 @@ export declare const ProducerService: GenService<{
5138
6456
  output: typeof LookupNPNByFEINResponseSchema;
5139
6457
  };
5140
6458
  /**
5141
- * ResyncProducer triggers a manual resynchronization of a producer's data. This can be used to refresh data after external changes. WARNING: This call counts as an additional NPN lookup for billing purposes. Most billing plans are based on unique NPNs per month, so using this method may result in extra charges.
6459
+ * ResyncProducer triggers a manual resynchronization of a producer's data.
6460
+ * This can be used to refresh data after external change
6461
+ *
6462
+ * Common Error Codes:
6463
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6464
+ * - INVALID_ARGUMENT: Producer ID is empty
6465
+ *
5142
6466
  *
5143
6467
  * @generated from rpc producerflow.producer.v1.ProducerService.ResyncProducer
5144
6468
  */
@@ -5148,7 +6472,12 @@ export declare const ProducerService: GenService<{
5148
6472
  output: typeof ResyncProducerResponseSchema;
5149
6473
  };
5150
6474
  /**
5151
- * ResyncAgency triggers a manual resynchronization of an agency's data. Similar to ResyncProducer, this can be used to refresh data after external changes. WARNING: This call counts as an additional NPN lookup for billing purposes. Most billing plans are based on unique NPNs per month, so using this method may result in extra charges.
6475
+ * ResyncAgency triggers a manual resynchronization of an agency's data. Similar
6476
+ * to ResyncProducer, this can be used to refresh data after external changes.
6477
+ * Common Error Codes:
6478
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6479
+ * - INVALID_ARGUMENT: Agency ID is empty or request is empty
6480
+ *
5152
6481
  *
5153
6482
  * @generated from rpc producerflow.producer.v1.ProducerService.ResyncAgency
5154
6483
  */
@@ -5158,7 +6487,46 @@ export declare const ProducerService: GenService<{
5158
6487
  output: typeof ResyncAgencyResponseSchema;
5159
6488
  };
5160
6489
  /**
5161
- * SyncProducerWithNIPR synchronizes a producer's data with the NIPR system. Fetches the latest producer information and appointments. WARNING: This call counts as an extra NPN lookup against your billing. Most billing plans are based on unique NPNs per month, so using this method may result in additional charges.
6490
+ * SyncProducerWithNIPR synchronizes a producer's data with NIPR.
6491
+ *
6492
+ * Use this endpoint to manually trigger an immediate refresh of producer data
6493
+ * from NIPR. The operation validates the producer NPN exists in NIPR before
6494
+ * syncing.
6495
+ *
6496
+ * What Gets Synchronized:
6497
+ * - State licenses with expiration dates and Lines of Authority
6498
+ * - Carrier appointments with status and renewal dates
6499
+ * - Regulatory actions and disciplinary history
6500
+ * - Biographic information (name, DOB, state of domicile)
6501
+ * - Address by state
6502
+ *
6503
+ * Preconditions:
6504
+ * - Producer must exist and belong to the authenticated tenant
6505
+ * - Producer must have a valid NPN registered in NIPR
6506
+ * - Producer must not already be in active sync state
6507
+ *
6508
+ * Validation Rules:
6509
+ * Proto validation (format checks):
6510
+ * - producer_id: Required, must be a valid UUID format
6511
+ *
6512
+ * Business logic validation:
6513
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6514
+ * - Producer must have an NPN assigned (cannot sync a producer without NPN)
6515
+ * - Producer's NPN must exist in NIPR (validated via NIPR NPN Lookup API)
6516
+ * - Producer must not already be in ACTIVE sync state (prevents redundant syncs)
6517
+ *
6518
+ * Timeout: 30 seconds. If NIPR takes longer, you'll receive a
6519
+ * DEADLINE_EXCEEDED error.
6520
+ *
6521
+ * Returns:
6522
+ * Empty response on success.
6523
+ *
6524
+ * Common Error Codes:
6525
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6526
+ * - INVALID_ARGUMENT: Producer has no NPN or NPN is not registered in NIPR
6527
+ * - FAILED_PRECONDITION: Producer is already synced with NIPR (ACTIVE sync state)
6528
+ * - DEADLINE_EXCEEDED: NIPR sync took longer than 30 seconds
6529
+ *
5162
6530
  *
5163
6531
  * @generated from rpc producerflow.producer.v1.ProducerService.SyncProducerWithNIPR
5164
6532
  */
@@ -5168,7 +6536,53 @@ export declare const ProducerService: GenService<{
5168
6536
  output: typeof SyncProducerWithNIPRResponseSchema;
5169
6537
  };
5170
6538
  /**
5171
- * SyncAgencyWithNIPR synchronizes an agency's data with the NIPR system. Fetches the latest agency information and appointments. WARNING: This call counts as an extra NPN lookup against your billing. Most billing plans are based on unique NPNs per month, so using this method may result in additional charges.
6539
+ * SyncAgencyWithNIPR synchronizes an agency's data with NIPR.
6540
+ *
6541
+ * Use this endpoint to manually trigger an immediate refresh of agency data
6542
+ * from NIPR. The operation validates the agency NPN exists in NIPR before
6543
+ * syncing.
6544
+ *
6545
+ * What Gets Synchronized:
6546
+ * - Agency biographic information (company name, FEIN, contact details)
6547
+ * - State licenses with expiration dates and Lines of Authority
6548
+ * - Carrier appointments with status and renewal dates
6549
+ * - Regulatory actions and disciplinary history
6550
+ * - Address history by state
6551
+ *
6552
+ * Bulk Producer Sync:
6553
+ * When sync_all_producers is set to true, the system will also sync all
6554
+ * producers associated with the agency. This extends the timeout to 10
6555
+ * minutes to accommodate the additional operations. Each producer sync is
6556
+ * a separate billable NIPR lookup.
6557
+ *
6558
+ * Preconditions:
6559
+ * - Agency must exist and belong to the authenticated tenant
6560
+ * - Agency must have a valid NPN registered in NIPR
6561
+ * - Agency must not already be in active sync state
6562
+ *
6563
+ * Validation Rules:
6564
+ * Proto validation (format checks):
6565
+ * - agency_id: Required, must be a valid UUID format
6566
+ * - sync_all_producers: Optional boolean, defaults to false
6567
+ *
6568
+ * Business logic validation:
6569
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6570
+ * - Agency's NPN must exist in NIPR (validated via NIPR NPN Lookup API)
6571
+ * - Agency must not already be in ACTIVE sync state (prevents redundant syncs)
6572
+ *
6573
+ * Timeout:
6574
+ * - 30 seconds when syncing agency only
6575
+ * - 10 minutes when sync_all_producers is true
6576
+ *
6577
+ * Returns:
6578
+ * Empty response on success.
6579
+ *
6580
+ * Common Error Codes:
6581
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6582
+ * - INVALID_ARGUMENT: Agency NPN is not valid (not found in NIPR)
6583
+ * - FAILED_PRECONDITION: Agency is already synced with NIPR (ACTIVE sync state)
6584
+ * - DEADLINE_EXCEEDED: NIPR sync operation timed out (30s for agency only, 10m with sync_all_producers)
6585
+ *
5172
6586
  *
5173
6587
  * @generated from rpc producerflow.producer.v1.ProducerService.SyncAgencyWithNIPR
5174
6588
  */
@@ -5178,8 +6592,35 @@ export declare const ProducerService: GenService<{
5178
6592
  output: typeof SyncAgencyWithNIPRResponseSchema;
5179
6593
  };
5180
6594
  /**
5181
- * StopSyncProducerWithNIPR stops the synchronization process with NIPR for a producer.
5182
- * Use this to prevent further automatic updates from NIPR.
6595
+ * StopSyncProducerWithNIPR disables automatic NIPR synchronization for a producer.
6596
+ *
6597
+ * Use this endpoint to stop receiving automatic updates from NIPR for a
6598
+ * specific producer. Once stopped, the producer's NIPR data will no longer
6599
+ * be refreshed via PDB Alerts or other automatic sync mechanisms.
6600
+ *
6601
+ * This does not delete existing NIPR data - it only prevents future updates.
6602
+ * To re-enable synchronization, use the SyncProducerWithNIPR endpoint.
6603
+ *
6604
+ * Preconditions:
6605
+ * - Producer must exist and belong to the authenticated tenant
6606
+ * - Producer must be in active or failing sync state (not already disabled/pending)
6607
+ *
6608
+ * Validation Rules:
6609
+ * Proto validation (format checks):
6610
+ * - producer_id: Required, must be a valid UUID format
6611
+ *
6612
+ * Business logic validation:
6613
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6614
+ * - Producer must be in ACTIVE or FAILING sync state (cannot stop if already
6615
+ * DISABLED or PENDING)
6616
+ *
6617
+ * Returns:
6618
+ * Empty response on success.
6619
+ *
6620
+ * Common Error Codes:
6621
+ * - NOT_FOUND: Producer doesn't exist or doesn't belong to tenant
6622
+ * - FAILED_PRECONDITION: Producer is already unsynced (DISABLED or PENDING sync state)
6623
+ *
5183
6624
  *
5184
6625
  * @generated from rpc producerflow.producer.v1.ProducerService.StopSyncProducerWithNIPR
5185
6626
  */
@@ -5189,8 +6630,43 @@ export declare const ProducerService: GenService<{
5189
6630
  output: typeof StopSyncProducerWithNIPRResponseSchema;
5190
6631
  };
5191
6632
  /**
5192
- * StopSyncAgencyWithNIPR stops the synchronization process with NIPR for an agency.
5193
- * Use this to prevent further automatic updates from NIPR.
6633
+ * StopSyncAgencyWithNIPR disables automatic NIPR synchronization for an agency.
6634
+ *
6635
+ * Use this endpoint to stop receiving automatic updates from NIPR for a
6636
+ * specific agency. Once stopped, the agency's NIPR data will no longer be
6637
+ * refreshed via PDB Alerts or other automatic sync mechanisms.
6638
+ *
6639
+ * This does not delete existing NIPR data - it only prevents future updates.
6640
+ * To re-enable synchronization, use the SyncAgencyWithNIPR endpoint.
6641
+ *
6642
+ * Bulk Producer Stop:
6643
+ * When stop_all_producers is set to true, the system will also stop sync for
6644
+ * all producers associated with the agency. This is useful when offboarding
6645
+ * an entire agency from NIPR synchronization. When this flag is set, the
6646
+ * precondition check for agency sync state is bypassed.
6647
+ *
6648
+ * Preconditions:
6649
+ * - Agency must exist and belong to the authenticated tenant
6650
+ * - Agency must be in active or failing sync state (unless stop_all_producers is true)
6651
+ *
6652
+ * Validation Rules:
6653
+ * Proto validation (format checks):
6654
+ * - agency_id: Required, must be a valid UUID format
6655
+ * - stop_all_producers: Optional boolean, defaults to false
6656
+ *
6657
+ * Business logic validation:
6658
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6659
+ * - Unless stop_all_producers is true, agency must be in ACTIVE or FAILING sync
6660
+ * state (cannot stop if already DISABLED or PENDING)
6661
+ *
6662
+ * Returns:
6663
+ * Empty response on success.
6664
+ *
6665
+ * Common Error Codes:
6666
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6667
+ * - FAILED_PRECONDITION: Agency is already unsynced (DISABLED or PENDING sync state,
6668
+ * unless stop_all_producers is true)
6669
+ *
5194
6670
  *
5195
6671
  * @generated from rpc producerflow.producer.v1.ProducerService.StopSyncAgencyWithNIPR
5196
6672
  */
@@ -5200,7 +6676,54 @@ export declare const ProducerService: GenService<{
5200
6676
  output: typeof StopSyncAgencyWithNIPRResponseSchema;
5201
6677
  };
5202
6678
  /**
5203
- * CreateProducerUploadURL generates a URL that can be used to upload new producers for an existing agency. The agency is identified by its NPN, and the URL can be shared with the agency to allow them to upload producer information securely. The URL is time-limited and includes necessary security tokens. A default expiration of 7 days will be used. The agency must: Exist and belong to the authenticated tenant. Have a valid NPN. Returns a URL string that can be shared with the agency for producer uploads. Returns errors in the following cases: INVALID_ARGUMENT: if agency NPN is empty or invalid format. NOT_FOUND: if agency NPN doesn't exist. INTERNAL: for other unexpected errors.
6679
+ * CreateProducerUploadURL generates a secure URL for bulk producer uploads to
6680
+ * an existing agency.
6681
+ *
6682
+ * Use this endpoint to create a shareable link that allows agencies to upload
6683
+ * multiple producers at once. The URL includes security tokens and tenant
6684
+ * context to ensure secure, authenticated access.
6685
+ *
6686
+ * Unlike CreateProducerOnboardingURL which creates a self-service form for a
6687
+ * single producer, this endpoint generates a URL for bulk uploading producer
6688
+ * data (typically via CSV or spreadsheet format).
6689
+ *
6690
+ * The agency is identified by its National Producer Number (NPN), which must
6691
+ * already exist in your tenant. Use ListAgencies or GetAgencyAndProducers to
6692
+ * look up agency NPNs if needed.
6693
+ *
6694
+ * Typical Workflow:
6695
+ * 1. Generate producer upload URL using the agency's NPN
6696
+ * 2. Share URL with agency contact via email or portal
6697
+ * 3. Agency uploads producer data through the URL
6698
+ * 4. System processes uploads, validates NPNs with NIPR, and creates producer
6699
+ * records
6700
+ * 5. Producers are associated with the agency and optionally synced with NIPR
6701
+ *
6702
+ * URL Expiration:
6703
+ * The generated URL has a default expiration of 7 days. After expiration, a
6704
+ * new URL must be generated.
6705
+ *
6706
+ * Validation Performed:
6707
+ * - Agency NPN format is valid (numeric string, 2-10 digits)
6708
+ * - Agency with the given NPN exists in your tenant
6709
+ * - Agency belongs to the authenticated tenant
6710
+ *
6711
+ * Validation Rules:
6712
+ * Proto validation (format checks):
6713
+ * - agency_npn: Required, must be 2-10 digits (numeric characters only)
6714
+ *
6715
+ * Business logic validation:
6716
+ * - Agency with the given NPN must exist in the authenticated tenant
6717
+ * - Agency must belong to the authenticated tenant (ownership verification)
6718
+ * - Only one agency should match the NPN (multiple matches indicate data issue)
6719
+ *
6720
+ * Returns:
6721
+ * A time-limited URL string that can be shared with the agency for bulk
6722
+ * producer uploads.
6723
+ *
6724
+ * Common Error Codes:
6725
+ * - NOT_FOUND: No agency found with the given NPN in your tenant
6726
+ *
5204
6727
  *
5205
6728
  * @generated from rpc producerflow.producer.v1.ProducerService.CreateProducerUploadURL
5206
6729
  */
@@ -5210,7 +6733,53 @@ export declare const ProducerService: GenService<{
5210
6733
  output: typeof CreateProducerUploadURLResponseSchema;
5211
6734
  };
5212
6735
  /**
5213
- * AddAgencyLocations adds one or more locations to an existing agency. Each location must have a unique name within the agency and valid address information. You can add up to 100 locations in a single request. This is a bulk operation with all-or-nothing behavior - if any location fails validation, the entire request will fail and no locations will be added. Returns the IDs of successfully added locations. Returns errors in the following cases: UNAUTHENTICATED: if the API key is invalid or missing. INVALID_ARGUMENT: if the request is nil, agency_id is empty, no locations provided, location names are duplicated within the request or already exist for the agency. NOT_FOUND: if the agency doesn't exist or doesn't belong to the authenticated tenant.
6736
+ * AddAgencyLocations adds one or more locations to an existing agency.
6737
+ *
6738
+ * Use this endpoint to programmatically add physical locations (offices,
6739
+ * branches, etc.) to an agency. Locations enable organizing producers by
6740
+ * their work sites and tracking agency presence across different addresses.
6741
+ *
6742
+ * Bulk Operation Behavior:
6743
+ * This is an all-or-nothing operation - if any location fails validation,
6744
+ * the entire request will fail and no locations will be added. You can add
6745
+ * up to 100 locations in a single request.
6746
+ *
6747
+ * Validation Performed:
6748
+ * - Agency exists and belongs to the authenticated tenant
6749
+ * - At least one location is provided
6750
+ * - Location names are unique within the agency (case-insensitive)
6751
+ * - Location names are not duplicated within the request
6752
+ * - Valid address information is provided for each location
6753
+ *
6754
+ * Validation Rules:
6755
+ * Proto validation (format checks):
6756
+ * - agency_id: Required, must be a valid UUID format
6757
+ * - locations: Required, 1-100 locations. Each location:
6758
+ * - name: Required, must be non-empty (unique within agency)
6759
+ * - address: Required
6760
+ * - street: Required, must be non-empty
6761
+ * - city: Required, must be non-empty
6762
+ * - state: Required, must be exactly 2 characters (state code)
6763
+ * - zip: Required, must be 1-10 characters
6764
+ * - phone: Required, must match E.164 pattern (e.g., +15551234567)
6765
+ * - email: Required, must be a valid email format
6766
+ * - is_primary: Optional boolean, marks location as primary
6767
+ *
6768
+ * Business logic validation:
6769
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6770
+ * - Location names must be unique within the agency (case-insensitive)
6771
+ * - Location names must not duplicate any existing location names in the agency
6772
+ * - Location names must not duplicate other location names within the same request
6773
+ *
6774
+ * Returns:
6775
+ * List of UUIDs for all created locations in the same order as the request.
6776
+ * This ordering guarantee allows you to map request entries to their created IDs.
6777
+ *
6778
+ * Common Error Codes:
6779
+ * - INVALID_ARGUMENT: Missing agency_id, no locations provided, duplicate
6780
+ * location names, or location with name already exists in agency
6781
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6782
+ *
5214
6783
  *
5215
6784
  * @generated from rpc producerflow.producer.v1.ProducerService.AddAgencyLocations
5216
6785
  */
@@ -5220,7 +6789,39 @@ export declare const ProducerService: GenService<{
5220
6789
  output: typeof AddAgencyLocationsResponseSchema;
5221
6790
  };
5222
6791
  /**
5223
- * RemoveAgencyLocations removes one or more locations from an agency. Locations that don't exist will be silently ignored. Returns the IDs of successfully removed locations. When a location is removed, all the producers associated with that location will be unassigned from that location. Returns errors in the following cases: UNAUTHENTICATED: if the API key is invalid or missing. INVALID_ARGUMENT: if the request is nil, agency_id is empty, or no location_ids provided. NOT_FOUND: if the agency doesn't exist or doesn't belong to the authenticated tenant.
6792
+ * RemoveAgencyLocations removes one or more locations from an agency.
6793
+ *
6794
+ * Use this endpoint to delete locations that are no longer needed. This is
6795
+ * useful when closing branch offices or consolidating agency locations.
6796
+ *
6797
+ * Producer Unassignment:
6798
+ * When a location is removed, all producers assigned to that location are
6799
+ * automatically unassigned. The producers themselves are not deleted - they
6800
+ * remain associated with the agency but without a location assignment.
6801
+ *
6802
+ * Partial Success Behavior:
6803
+ * Locations that don't exist are silently ignored. The response contains only
6804
+ * the IDs of locations that were actually removed.
6805
+ *
6806
+ * Validation Performed:
6807
+ * - At least one location ID is provided
6808
+ *
6809
+ * Validation Rules:
6810
+ * Proto validation (format checks):
6811
+ * - agency_id: Required, must be a valid UUID format
6812
+ * - location_ids: Required, 1-100 items, each must be a valid UUID format
6813
+ *
6814
+ * Business logic validation:
6815
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6816
+ * - Location IDs that don't exist are silently ignored (partial success)
6817
+ *
6818
+ * Returns:
6819
+ * List of UUIDs for locations that were successfully removed.
6820
+ *
6821
+ * Common Error Codes:
6822
+ * - INVALID_ARGUMENT: Missing agency_id or no location_ids provided
6823
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6824
+ *
5224
6825
  *
5225
6826
  * @generated from rpc producerflow.producer.v1.ProducerService.RemoveAgencyLocations
5226
6827
  */
@@ -5230,7 +6831,30 @@ export declare const ProducerService: GenService<{
5230
6831
  output: typeof RemoveAgencyLocationsResponseSchema;
5231
6832
  };
5232
6833
  /**
5233
- * ListAgencyLocations retrieves all locations associated with an agency. Returns errors in the following cases: UNAUTHENTICATED: if the API key is invalid or missing. INVALID_ARGUMENT: if the agency_id is empty. NOT_FOUND: if the agency doesn't exist.
6834
+ * ListAgencyLocations retrieves all locations associated with an agency.
6835
+ *
6836
+ * Use this endpoint to fetch the complete list of physical locations
6837
+ * belonging to an agency. Each location includes its address, contact
6838
+ * information, and primary status.
6839
+ *
6840
+ * The response includes complete location information:
6841
+ * - Location ID and name
6842
+ * - Physical address (street, city, state, zip)
6843
+ * - Contact information (phone, email)
6844
+ * - Primary location indicator
6845
+ *
6846
+ * Validation Rules:
6847
+ * Proto validation (format checks):
6848
+ * - agency_id: Required, must be a valid UUID format
6849
+ *
6850
+ * Returns:
6851
+ * A list of all locations associated with the specified agency. Returns an
6852
+ * empty list if the agency has no locations.
6853
+ *
6854
+ * Common Error Codes:
6855
+ * - INVALID_ARGUMENT: Invalid request
6856
+ * - NOT_FOUND: Agency doesn't exist or doesn't belong to tenant
6857
+ *
5234
6858
  *
5235
6859
  * @generated from rpc producerflow.producer.v1.ProducerService.ListAgencyLocations
5236
6860
  */
@@ -5240,7 +6864,45 @@ export declare const ProducerService: GenService<{
5240
6864
  output: typeof ListAgencyLocationsResponseSchema;
5241
6865
  };
5242
6866
  /**
5243
- * AssignProducerToLocations assigns one or more locations to a producer. The locations must belong to the same agency as the producer. Error cases: UNAUTHENTICATED: Invalid or missing API key. INVALID_ARGUMENT: Empty producer_id or no location_ids. NOT_FOUND: Producer or locations don't exist. PERMISSION_DENIED: Locations don't belong to the producer's agency.
6867
+ * AssignProducerToLocations assigns one or more locations to a producer.
6868
+ *
6869
+ * Use this endpoint to associate a producer with specific agency locations
6870
+ * (branch offices, work sites, etc.). A producer can be assigned to multiple
6871
+ * locations within their agency.
6872
+ *
6873
+ * Location Ownership:
6874
+ * All specified locations must belong to the same agency as the producer.
6875
+ * Cross-agency location assignments are not permitted.
6876
+ *
6877
+ * Idempotent Behavior:
6878
+ * If a producer is already assigned to a location, the assignment is
6879
+ * preserved without error. The response includes all successfully assigned
6880
+ * location IDs.
6881
+ *
6882
+ * Validation Performed:
6883
+ * - Producer exists and belongs to the authenticated tenant
6884
+ * - All location IDs exist and belong to the producer's agency
6885
+ * - At least one location ID is provided
6886
+ *
6887
+ * Validation Rules:
6888
+ * Proto validation (format checks):
6889
+ * - producer_id: Required, must be a valid UUID format
6890
+ * - location_ids: Required, 1-100 items, each must be a valid UUID format
6891
+ *
6892
+ * Business logic validation:
6893
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6894
+ * - Producer's agency must exist and belong to the authenticated tenant
6895
+ * - All location_ids must exist and belong to the producer's agency
6896
+ *
6897
+ * Returns:
6898
+ * List of location IDs that were successfully assigned to the producer.
6899
+ *
6900
+ * Common Error Codes:
6901
+ * - INVALID_ARGUMENT: Request is missing
6902
+ * - NOT_FOUND: Producer doesn't exist, agency doesn't exist, or specified
6903
+ * locations don't exist
6904
+ * - PERMISSION_DENIED: Agency doesn't belong to the authenticated tenant
6905
+ *
5244
6906
  *
5245
6907
  * @generated from rpc producerflow.producer.v1.ProducerService.AssignProducerToLocations
5246
6908
  */
@@ -5250,7 +6912,39 @@ export declare const ProducerService: GenService<{
5250
6912
  output: typeof AssignProducerToLocationsResponseSchema;
5251
6913
  };
5252
6914
  /**
5253
- * UnassignProducerFromLocations removes one or more location assignments from a producer. The locations must belong to the same agency as the producer. Error cases: UNAUTHENTICATED: Invalid or missing API key. INVALID_ARGUMENT: Empty producer_id or no location_ids. NOT_FOUND: Producer doesn't exist.
6915
+ * UnassignProducerFromLocations removes one or more location assignments from
6916
+ * a producer.
6917
+ *
6918
+ * Use this endpoint to disassociate a producer from specific agency locations.
6919
+ * This is useful when producers change work sites or when consolidating
6920
+ * location assignments.
6921
+ *
6922
+ * Producer Preservation:
6923
+ * This operation only removes the location assignments - the producer remains
6924
+ * active and associated with the agency. To fully remove a producer, use the
6925
+ * appropriate producer deletion endpoint.
6926
+ *
6927
+ * Validation Performed:
6928
+ * - Producer exists and belongs to the authenticated tenant
6929
+ * - All location IDs exist and belong to the producer's agency
6930
+ * - At least one location ID is provided
6931
+ *
6932
+ * Validation Rules:
6933
+ * Proto validation (format checks):
6934
+ * - producer_id: Required, must be a valid UUID format
6935
+ * - location_ids: Required, 1-100 items, each must be a valid UUID format
6936
+ *
6937
+ * Business logic validation:
6938
+ * - producer_id: Producer must exist and belong to the authenticated tenant
6939
+ * - All location_ids must exist and belong to the producer's agency
6940
+ *
6941
+ * Returns:
6942
+ * List of location IDs that were successfully unassigned from the producer.
6943
+ *
6944
+ * Common Error Codes:
6945
+ * - INVALID_ARGUMENT: Request is missing, producer_id is empty, or no location_ids provided
6946
+ * - NOT_FOUND: Producer doesn't exist or specified locations don't exist
6947
+ *
5254
6948
  *
5255
6949
  * @generated from rpc producerflow.producer.v1.ProducerService.UnassignProducerFromLocations
5256
6950
  */
@@ -5260,7 +6954,53 @@ export declare const ProducerService: GenService<{
5260
6954
  output: typeof UnassignProducerFromLocationsResponseSchema;
5261
6955
  };
5262
6956
  /**
5263
- * UpdateAgencyLocation updates an existing agency location. You can update the name, address, contact information, and primary status of a location. All fields are optional - only provide the fields you want to update. Location name must be unique within the agency. Returns the updated location details. Error cases: UNAUTHENTICATED: Invalid or missing API key. INVALID_ARGUMENT: Missing agency_id or location_id. NOT_FOUND: Agency or location doesn't exist. ALREADY_EXISTS: Location name already exists within the agency.
6957
+ * UpdateAgencyLocation updates an existing agency location.
6958
+ *
6959
+ * Use this endpoint to modify location details such as address, contact
6960
+ * information, or primary status. This is useful when locations move,
6961
+ * change phone numbers, or when designating a new primary location.
6962
+ *
6963
+ * Updatable Fields:
6964
+ * - Name (must remain unique within the agency)
6965
+ * - Address (street, city, state, zip)
6966
+ * - Contact information (phone, email)
6967
+ * - Primary location status
6968
+ *
6969
+ * All fields are optional - only provide the fields you want to update.
6970
+ * Unchanged fields retain their current values.
6971
+ *
6972
+ * Name Uniqueness:
6973
+ * If updating the location name, the new name must not already exist for
6974
+ * another location within the same agency (case-insensitive comparison).
6975
+ *
6976
+ * Validation Rules:
6977
+ * Proto validation (format checks):
6978
+ * - agency_id: Required, must be a valid UUID format
6979
+ * - location_id: Required, must be a valid UUID format
6980
+ * - name: If provided, must be non-empty (unique within agency)
6981
+ * - address: If provided (all fields optional within):
6982
+ * - street: If provided, must be non-empty
6983
+ * - city: If provided, must be non-empty
6984
+ * - state: If provided, must be exactly 2 characters (state code)
6985
+ * - zip: If provided, must be 1-10 characters
6986
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6987
+ * - email: If provided, must be a valid email format
6988
+ * - is_primary: Optional boolean
6989
+ *
6990
+ * Business logic validation:
6991
+ * - agency_id: Agency must exist and belong to the authenticated tenant
6992
+ * - location_id: Location must exist and belong to the specified agency
6993
+ * - name: If provided, must be unique within the agency (case-insensitive,
6994
+ * excluding the location being updated)
6995
+ *
6996
+ * Returns:
6997
+ * The complete updated location object with all current field values.
6998
+ *
6999
+ * Common Error Codes:
7000
+ * - INVALID_ARGUMENT: Missing agency_id or location_id, or invalid request
7001
+ * - NOT_FOUND: Agency or location doesn't exist or doesn't belong to tenant
7002
+ * - ALREADY_EXISTS: New location name already exists within the agency
7003
+ *
5264
7004
  *
5265
7005
  * @generated from rpc producerflow.producer.v1.ProducerService.UpdateAgencyLocation
5266
7006
  */