/
bpa-service.yaml
1165 lines (1165 loc) · 38.8 KB
/
bpa-service.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
openapi: "3.0.0"
info:
title: "eGov Building Plan Application System v1.1"
description: "Stakeholders will apply for a building permit using the scrutinised\
\ number from eDCR.A stakeholder is a registered user in the system who logs in\
\ to the portal and apply for a service. \nThe building permit application is\
\ one of the services in the building plan approval system.\n"
contact:
name: "Egovernments Foundation"
email: "contact@egovernments.org"
version: "1.0.0"
servers:
- url: "https://virtserver.swaggerhub.com/egov-foundation/BPA/1.0.0"
description: "SwaggerHub API Auto Mocking"
- url: "https://virtserver.swaggerhub.com/egovernmets-faoundat/PT-2.0/1.0.0"
description: "SwaggerHub API Auto Mocking"
- url: "https://egov-micro-dev.egovernments.org"
paths:
/v1/land/_create:
post:
tags:
- "Land Registry"
summary: "Crete land detail in land registry"
description: "Citizen, Employee, Or an Architect can create for new build plan\
\ approval"
requestBody:
description: "Fill Bpa application details and submit the request."
content:
application/json:
schema:
$ref: "#/components/schemas/LandInfoRequest"
required: true
responses:
"202":
description: "Reqeuset submitted successfully"
content:
'*/*':
schema:
$ref: "#/components/schemas/LandInfoResponse"
"400":
description: "Failed to process the request"
content:
'*/*':
schema:
$ref: "#/components/schemas/ErrorRes"
x-roles: "BPA_ARCHITECT,CITIZEN,EMPLOYEE"
/v1/land/_update:
post:
tags:
- "Land Registry"
summary: "Update existing application."
description: "Updates a given `application` with newer details."
requestBody:
description: "Request to update existing application details."
content:
application/json:
schema:
$ref: "#/components/schemas/LandInfoRequest"
required: true
responses:
"202":
description: "successfully updated"
content:
'*/*':
schema:
$ref: "#/components/schemas/LandInfoResponse"
"400":
description: "Failed to update"
content:
'*/*':
schema:
$ref: "#/components/schemas/ErrorRes"
x-roles: "BPA_ARCHITECT,CITIZEN,EMPLOYEE"
/v1/land/_search:
post:
tags:
- "Land Registry"
summary: "Get the list of land information."
description: "Get the list of land information..\n"
parameters:
- name: "tenantId"
in: "query"
description: "Unique id for a tenant."
required: true
schema:
type: "string"
format: "varchar"
- name: "ids"
in: "query"
description: "List of system generated ids of BPA applications."
required: false
style: "form"
explode: true
schema:
type: "array"
items:
type: "string"
- name: "landUId"
in: "query"
description: "land identifier."
required: false
style: "form"
explode: true
schema:
type: "string"
- name: "mobileNumber"
in: "query"
description: "MobileNumber of land owners"
required: false
style: "form"
explode: true
schema:
type: "integer"
format: "int64"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RequestInfo"
required: true
responses:
"200":
description: "Successful response"
content:
'*/*':
schema:
$ref: "#/components/schemas/BPAResponse"
"400":
description: "Invalid input."
content:
'*/*':
schema:
$ref: "#/components/schemas/ErrorRes"
x-roles: "BPA_ARCHITECT,CITIZEN,EMPLOYEE"
/v1/bpa/_create:
post:
tags:
- "BPA_APPLY"
summary: "Apply for new building plan application."
description: "Citizen, Employee, Or an Architect can apply for new build plan\
\ approval"
requestBody:
description: "Fill Bpa application details and submit the request."
content:
application/json:
schema:
$ref: "#/components/schemas/BPARequest"
required: true
responses:
"202":
description: "Application submitted successfully"
content:
'*/*':
schema:
$ref: "#/components/schemas/BPAResponse"
"400":
description: "Failed to process the application"
content:
'*/*':
schema:
$ref: "#/components/schemas/ErrorRes"
x-roles: "BPA_ARCHITECT,CITIZEN,EMPLOYEE"
/v1/bpa/_update:
post:
tags:
- "BPA_APPLY"
summary: "Update existing application."
description: "Updates a given `application` with newer details."
requestBody:
description: "Request to update existing application details."
content:
application/json:
schema:
$ref: "#/components/schemas/BPARequest"
required: true
responses:
"202":
description: "Application updated successfully"
content:
'*/*':
schema:
$ref: "#/components/schemas/BPAResponse"
"400":
description: "Failed to update"
content:
'*/*':
schema:
$ref: "#/components/schemas/ErrorRes"
x-roles: "BPA_ARCHITECT,CITIZEN,EMPLOYEE"
/v1/bpa/_search:
post:
tags:
- "BPA_APPLY"
summary: "Get the list of application by passing the diffrent search criteria."
description: "Get the properties list based on the input parameters.\n"
parameters:
- name: "tenantId"
in: "query"
description: "Unique id for a tenant."
required: true
schema:
type: "string"
format: "varchar"
- name: "ids"
in: "query"
description: "List of system generated ids of BPA applications."
required: false
style: "form"
explode: true
schema:
type: "array"
items:
type: "string"
- name: "edcrNumber"
in: "query"
description: "edcr Number."
required: false
style: "form"
explode: true
schema:
type: "string"
- name: "applicationNo"
in: "query"
description: "application numbers"
required: false
style: "form"
explode: true
schema:
type: "string"
- name: "mobileNumber"
in: "query"
description: "MobileNumber of land owners"
required: false
style: "form"
explode: true
schema:
type: "integer"
format: "int64"
- name: "approvalNo"
in: "query"
description: "approval no"
required: false
style: "form"
explode: true
schema:
type: "string"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RequestInfo"
required: true
responses:
"200":
description: "Successful response"
content:
'*/*':
schema:
$ref: "#/components/schemas/BPAResponse"
"400":
description: "Invalid input."
content:
'*/*':
schema:
$ref: "#/components/schemas/ErrorRes"
x-roles: "BPA_ARCHITECT,CITIZEN,EMPLOYEE"
components:
schemas:
LandInfo:
title: "LandInfo"
required:
- "address"
- "owners"
- "tenantId"
type: "object"
properties:
id:
maxLength: 64
minLength: 1
type: "string"
description: "Unique Identifier(UUID) of the land for internal reference."
readOnly: true
landUId:
maxLength: 64
minLength: 1
type: "string"
description: "Unique formatted Identifier of the Land."
readOnly: true
landUniqueRegNo:
maxLength: 64
minLength: 1
type: "string"
description: "Unique Identifier of the Land in municipal departmrnt (eg.\
\ registration no, survey no etc)."
tenantId:
maxLength: 256
minLength: 2
type: "string"
description: "tenant id of the Property"
status:
$ref: "#/components/schemas/Status"
address:
$ref: "#/components/schemas/Address"
ownershipCategory:
maxLength: 64
type: "string"
description: "The type of ownership of the property."
owners:
type: "array"
description: "Property owners, these will be citizen users in system."
items:
$ref: "#/components/schemas/OwnerInfo"
institution:
$ref: "#/components/schemas/Institution"
source:
$ref: "#/components/schemas/Source"
channel:
$ref: "#/components/schemas/Channel"
documents:
type: "array"
description: "Attach the documents."
items:
$ref: "#/components/schemas/Document_2"
unit:
type: "array"
description: "Unit details of the plot."
items:
$ref: "#/components/schemas/Unit"
additionalDetails:
type: "object"
description: "The json to capturing the custom fields"
auditDetails:
$ref: "#/components/schemas/AuditDetails_2"
BPA:
required:
- "address"
- "owners"
- "tenantId"
type: "object"
properties:
id:
maxLength: 64
minLength: 1
type: "string"
description: "Unique Identifier(UUID) of the bpa application for internal\
\ reference."
readOnly: true
applicationNo:
maxLength: 64
minLength: 1
type: "string"
description: "Generate formatted Unique Identifier of the building permit\
\ application. Keep the format in mdms"
readOnly: true
approvalNo:
maxLength: 64
minLength: 1
type: "string"
description: "Generate Approval number based on wf status. When to generate\
\ approvalNo will be depends on wf state so make it configurable at application\
\ level"
readOnly: true
accountId:
maxLength: 64
minLength: 1
type: "string"
description: "Initiator User UUID"
edcrNumber:
maxLength: 64
minLength: 1
type: "string"
description: "Unique Identifier scrutinized edcr number"
riskType:
maxLength: 64
minLength: 1
type: "string"
description: "Risk type will be drived based on mdms configuration"
readOnly: true
landId:
maxLength: 64
minLength: 1
type: "string"
description: "Unique Identifier(UUID) of the land for internal reference."
tenantId:
maxLength: 256
minLength: 2
type: "string"
description: "Unique ULB identifier."
nullable: false
status:
maxLength: 256
minLength: 2
type: "string"
description: "status of the application."
readOnly: true
documents:
type: "array"
description: "The documents attached by owner for exemption."
items:
$ref: "#/components/schemas/Document_2"
landInfo:
$ref: "#/components/schemas/LandInfo"
workflow:
$ref: "#/components/schemas/Workflow"
auditDetails:
$ref: "#/components/schemas/AuditDetails_2"
additionalDetails:
type: "object"
description: "The json to capturing the custom fields"
description: "BPA application object to capture the details of land, land owners,\
\ and address of the land."
Workflow:
type: "object"
properties:
action:
maxLength: 64
minLength: 1
type: "string"
description: "Action on the application in certain"
assignes:
type: "array"
items:
type: "string"
comments:
maxLength: 64
minLength: 1
type: "string"
description: "Unique Identifier scrutinized number"
varificationDocuments:
type: "array"
description: "Attach the workflow varification documents."
items:
$ref: "#/components/schemas/Document_2"
description: "BPA application object to capture the details of land, land owners,\
\ and address of the land."
Status:
title: "Status"
type: "string"
description: "status of the Property"
enum:
- "ACTIVE"
- "INACTIVE"
BPARequest:
required:
- "BPA"
- "RequestInfo"
properties:
RequestInfo:
$ref: "#/components/schemas/RequestInfo"
BPA:
$ref: "#/components/schemas/BPA"
description: "Contract class to receive request. Array of Property items are\
\ used in case of create . Where as single Property item is used for update"
BPAResponse:
properties:
ResponseInfo:
$ref: "#/components/schemas/ResponseInfo"
BPA:
$ref: "#/components/schemas/BPA"
description: "Contains the ResponseHeader and the created/updated property"
LandInfoRequest:
required:
- "LandInfo"
- "RequestInfo"
properties:
RequestInfo:
$ref: "#/components/schemas/RequestInfo"
LandInfo:
$ref: "#/components/schemas/LandInfo"
description: "Contract class to receive request. Array of Land items are used\
\ in case of create . Where as single Land item is used for update"
LandInfoResponse:
properties:
ResponseInfo:
$ref: "#/components/schemas/ResponseInfo"
LandInfo:
$ref: "#/components/schemas/LandInfo"
description: "Contains the ResponseHeader and the created/updated property"
ErrorRes:
required:
- "ResponseHeader"
type: "object"
properties:
ResponseHeader:
$ref: "#/components/schemas/ResponseHeader"
Errors:
minLength: 1
type: "array"
description: "Error response array corresponding to Request Object array.\
\ In case of single object submission or _search related paths this may\
\ be an array of one error element"
items:
$ref: "#/components/schemas/Error"
description: "All APIs will return ErrorRes in case of failure which will carry\
\ ResponseHeader as metadata and Error object as actual representation of\
\ error. In case of bulk apis, some apis may chose to return the array of\
\ Error objects to indicate individual failure."
ResponseHeader:
required:
- "msgId"
- "resMsgId"
- "status"
type: "object"
properties:
ts:
type: "integer"
description: "response time in epoch"
format: "int64"
resMsgId:
maxLength: 256
type: "string"
description: "unique response message id (UUID) - will usually be the correlation\
\ id from the server"
msgId:
maxLength: 256
type: "string"
description: "message id of the request"
status:
type: "string"
description: "status of request processing"
enum:
- "COMPLETED"
- "ACCEPTED"
- "FAILED"
signature:
type: "string"
description: "Hash describing the current ResponseHeader"
error:
$ref: "#/components/schemas/Error"
information:
type: "object"
description: "Additional information from API"
debug:
type: "object"
description: "Debug information when requested"
additionalInfo:
type: "object"
description: "Any additional information if required e.g. status url (to\
\ find out the current status of an asynchronous processing response),\
\ additional links to perform special functions like file uploads etc."
description: "ResponseHeader should be used to carry metadata information about\
\ the response from the server. apiId, ver and msgId in ResponseHeader should\
\ always correspond to the same values in respective request's RequestHeader."
readOnly: true
Error:
required:
- "code"
- "message"
type: "object"
properties:
code:
type: "string"
description: "Error Code will be module specific error label/code to identiffy\
\ the error. All modules should also publish the Error codes with their\
\ specific localized values in localization service to ensure clients\
\ can print locale specific error messages. Example for error code would\
\ be User.NotFound to indicate User Not Found by User/Authentication service.\
\ All services must declare their possible Error Codes with brief description\
\ in the error response section of their API path."
message:
type: "string"
description: "English locale message of the error code. Clients should make\
\ a separate call to get the other locale description if configured with\
\ the service. Clients may choose to cache these locale specific messages\
\ to enhance performance with a reasonable TTL (May be defined by the\
\ localization service based on tenant + module combination)."
description:
type: "string"
description: "Optional long description of the error to help clients take\
\ remedial action. This will not be available as part of localization\
\ service."
params:
type: "array"
description: "Some error messages may carry replaceable fields (say $1,\
\ $2) to provide more context to the message. E.g. Format related errors\
\ may want to indicate the actual field for which the format is invalid.\
\ Client's should use the values in the param array to replace those fields."
items:
type: "string"
description: "Error object will be returned as a part of reponse body in conjunction\
\ with ResponseHeader as part of ErrorResponse whenever the request processing\
\ status in the ResponseHeader is FAILED. HTTP return in this scenario will\
\ usually be HTTP 400."
RequestInfo:
required:
- "action"
- "apiId"
- "msgId"
- "ts"
- "ver"
type: "object"
properties:
apiId:
maxLength: 128
type: "string"
description: "unique API ID"
ver:
maxLength: 32
type: "string"
description: "API version - for HTTP based request this will be same as\
\ used in path"
ts:
type: "integer"
description: "time in epoch"
format: "int64"
action:
maxLength: 32
type: "string"
description: "API action to be performed like _create, _update, _search\
\ (denoting POST, PUT, GET) or _oauth etc"
did:
maxLength: 1024
type: "string"
description: "Device ID from which the API is called"
key:
maxLength: 256
type: "string"
description: "API key (API key provided to the caller in case of server\
\ to server communication)"
msgId:
maxLength: 256
type: "string"
description: "Unique request message id from the caller"
requesterId:
maxLength: 256
type: "string"
description: "UserId of the user calling"
authToken:
type: "string"
description: "//session/jwt/saml token/oauth token - the usual value that\
\ would go into HTTP bearer token"
userInfo:
$ref: "#/components/schemas/UserInfo"
correlationId:
type: "string"
readOnly: true
description: "RequestInfo should be used to carry meta information about the\
\ requests to the server as described in the fields below. All eGov APIs will\
\ use requestinfo as a part of the request body to carry this meta information.\
\ Some of this information will be returned back from the server as part of\
\ the ResponseInfo in the response body to ensure correlation."
UserInfo:
required:
- "primaryrole"
- "tenantId"
- "userName"
type: "object"
properties:
tenantId:
type: "string"
description: "Unique Identifier of the tenant to which user primarily belongs"
uuid:
type: "string"
description: "System Generated User id of the authenticated user."
userName:
type: "string"
description: "Unique user name of the authenticated user"
password:
type: "string"
description: "password of the user."
idToken:
type: "string"
description: "This will be the OTP."
mobile:
type: "string"
description: "mobile number of the autheticated user"
email:
type: "string"
description: "email address of the authenticated user"
primaryrole:
type: "array"
description: "List of all the roles for the primary tenant"
items:
$ref: "#/components/schemas/Role"
additionalroles:
type: "array"
description: "array of additional tenantids authorized for the authenticated\
\ user"
items:
$ref: "#/components/schemas/TenantRole"
description: "This is acting ID token of the authenticated user on the server.\
\ Any value provided by the clients will be ignored and actual user based\
\ on authtoken will be used on the server."
readOnly: true
Role:
required:
- "name"
type: "object"
properties:
name:
maxLength: 64
type: "string"
description: "Unique name of the role"
code:
maxLength: 64
type: "string"
description: "Unique code of the role"
description:
type: "string"
description: "brief description of the role"
description: "minimal representation of the Roles in the system to be carried\
\ along in UserInfo with RequestInfo meta data. Actual authorization service\
\ to extend this to have more role related attributes\n"
TenantRole:
required:
- "roles"
- "tenantId"
type: "object"
properties:
tenantId:
type: "string"
description: "tenantid for the tenant"
roles:
type: "array"
description: "Roles assigned for a particular tenant - array of role codes/names"
items:
$ref: "#/components/schemas/Role"
description: "User role carries the tenant related role information for the\
\ user. A user can have multiple roles per tenant based on the need of the\
\ tenant. A user may also have multiple roles for multiple tenants."
Address:
required:
- "locality"
- "tenantId"
type: "object"
properties:
tenantId:
type: "string"
description: "Unique Identifier of the tenant to which user primarily belongs"
doorNo:
type: "string"
description: "House number or door number."
plotNo:
type: "string"
description: "Plot number of the house."
id:
type: "string"
description: "System generated id for the address"
readOnly: true
landmark:
type: "string"
description: "additional landmark to help locate the address"
city:
type: "string"
description: "City of the address. Can be represented by the tenantid itself"
district:
type: "string"
description: "The district in which the property is located"
region:
type: "string"
description: "The Region in which the property is located"
state:
type: "string"
description: "The State in which the property is located"
country:
type: "string"
description: "The country in which the property is located"
pincode:
type: "string"
description: "PIN code of the address. Indian pincodes will usually be all\
\ numbers."
additionDetails:
type: "string"
description: "more address detail as may be needed"
buildingName:
maxLength: 64
minLength: 2
type: "string"
description: "Name of the building"
street:
maxLength: 64
minLength: 2
type: "string"
description: "Street Name"
locality:
$ref: "#/components/schemas/Boundary"
geoLocation:
$ref: "#/components/schemas/GeoLocation"
description: "Representation of a address. Indiavidual APIs may choose to extend\
\ from this using allOf if more details needed to be added in their case.\n"
Boundary:
required:
- "code"
- "name"
type: "object"
properties:
code:
type: "string"
description: "code of the boundary."
name:
type: "string"
description: "name of the boundary."
label:
type: "string"
description: "localized label for the boundry."
latitude:
type: "string"
description: "latitude of the boundary."
longitude:
type: "string"
description: "longitude of the boundary."
children:
type: "array"
items:
$ref: "#/components/schemas/Boundary"
materializedPath:
type: "string"
description: "materialized path of the boundary - this would be of the format\
\ tenantid.[code] from parentt till teh current boundary"
readOnly: true
GeoLocation:
type: "object"
properties:
latitude:
type: "number"
description: "latitude of the address"
format: "double"
longitude:
type: "number"
description: "longitude of the address"
format: "double"
additionalDetails:
type: "object"
description: "Json object to capture any extra information which is not\
\ accommodated by model"
OwnerInfo:
title: "OwnerInfo"
required:
- "fatherOrHusbandName"
- "gender"
- "mobileNumber"
- "name"
- "relationship"
type: "object"
properties:
name:
maxLength: 256
type: "string"
description: "The name of the owner."
mobileNumber:
maxLength: 256
type: "string"
description: "MobileNumber of the owner."
gender:
maxLength: 256
type: "string"
description: "Gender of the owner."
fatherOrHusbandName:
maxLength: 256
type: "string"
description: "Father or Husband name of the owner."
correspondenceAddress:
maxLength: 1024
type: "string"
description: "The current address of the owner for correspondence."
isPrimaryOwner:
type: "boolean"
description: "The owner is primary or not"
ownerShipPercentage:
type: "number"
description: "Ownership percentage."
ownerType:
maxLength: 256
type: "string"
description: "Type of owner, based on this option Exemptions will be applied.\
\ This is master data defined in mdms."
institutionId:
maxLength: 64
type: "string"
description: "The id of the institution if the owner is the authorized person\
\ for one"
documents:
type: "array"
description: "The documents attached by owner for exemption."
items:
$ref: "#/components/schemas/Document"
relationship:
$ref: "#/components/schemas/Relationship"
additionalDetails:
type: "object"
description: "Json object to capture any extra information which is not\
\ accommodated of model"
Document:
title: "Document"
type: "object"
properties:
id:
maxLength: 64
type: "string"
description: "system id of the Document."
documentType:
type: "string"
description: "unique document type code, should be validated with document\
\ type master"
fileStore:
type: "string"
description: "File store reference key."
documentUid:
maxLength: 64
type: "string"
description: "The unique id(Pancard Number,Adhar etc.) of the given Document."
additionalDetails:
type: "object"
description: "Json object to capture any extra information which is not\
\ accommodated by model"
description: "This object holds list of documents attached during the transaciton\
\ for a property"
Relationship:
title: "Relationship"
type: "string"
description: "The relationship of gaurdian."
enum:
- "FATHER"
- "HUSBAND"
Institution:
title: "Institution"
type: "object"
properties:
id:
maxLength: 64
type: "string"
description: "Unique Identifier of the Institution(UUID)."
tenantId:
maxLength: 256
type: "string"
description: "tenant id of the Property"
type:
maxLength: 64
type: "string"
description: "Institution type."
designation:
maxLength: 64
type: "string"
description: "Designation of the person creating/updatingentity on behalf\
\ of the institution"
nameOfAuthorizedPerson:
maxLength: 256
type: "string"
description: "Name of the person who is taking action on behalf of institution"
additionalDetails:
type: "object"
description: "Json object to capture any extra information which is not\
\ accommodated by model"
Source:
title: "Source"
type: "string"
description: "Source of a constructionDetail data. The constructionDetail will\
\ be created in a system based on the data avaialble in their manual records\
\ or during field survey. There can be more from client to client."
enum:
- "MUNICIPAL_RECORDS"
- "FIELD_SURVEY"
Channel:
title: "Channel"
type: "string"
description: "constructionDetail details can be created from different channels\
\ Eg. System (properties created by ULB officials), CFC Counter (From citizen\
\ faciliation counters) etc. Here we are defining some known channels, there\
\ can be more client to client."
enum:
- "SYSTEM"
- "CFC_COUNTER"
- "CITIZEN"
- "DATA_ENTRY"
- "MIGRATION"
Document_2:
type: "object"
properties:
id:
maxLength: 64
type: "string"
description: "system id of the Document."
documentType:
type: "string"
description: "unique document type code, should be validated with document\
\ type master"
fileStore:
type: "string"
description: "File store reference key."
documentUid:
maxLength: 64
type: "string"
description: "The unique id(Pancard Number,Adhar etc.) of the given Document."
additionalDetails:
type: "object"
description: "Json object to capture any extra information which is not\
\ accommodated by model"
description: "This object holds list of documents attached during the transaciton\
\ for a property"
Unit:
title: "Unit"
type: "object"
properties:
id:
type: "string"
description: "Unique Identifier of the Unit(UUID)."
tenantId:
maxLength: 256
minLength: 2