summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/common-yang/test-yang/src/main/yang/test-yang-utils.yang
blob: eb62a859a2f4dc3d3c16eea32200cd63a16b907e (plain)
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
module test-yang-utils {

  yang-version 1.1;
  namespace "urn:test:yang:utils";
  prefix tesyangutils;
  
  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types.";
  }
  
  import ietf-inet-types {
    prefix inet;
  }
  
  typedef AddressType {
     type enumeration {
       enum OFFICE {
         description 
            "Office Address";
       }
       enum HOME {
         description 
            "Home Address";
       }
     }
  }
  
  identity item-code {
    description
      "Base identity";
  }

  typedef item-code {
    type identityref {
      base item-code;
    }
    description
      "Item code - Could be bar code, QR code or any other code to uniquely identify an item";
  }
  
  grouping address-location-entity {
    leaf id {
      type string;
      description 
         "Unique ID of the address";
    }
    leaf address-type {
      type AddressType;
      description 
          "Type of Address";
    }
    leaf delivery-date-time {
      type yang:date-and-time;
      description
        "Package delivery date and time";
    }
    leaf delivery-url {
      type inet:uri;
      description 
        "Delivery URL";
    }
    list item-list {
      key "item-key";
      leaf item-key {
        type item-code;
      }
      description 
        "Unique code of the ordered item";
    }
  }
  
  container address-location {
      description 
         "builder";
      uses address-location-entity;
  }
}