module bbf-yang-types {
  yang-version 1.1;
  namespace "urn:bbf:yang:bbf-yang-types";
  prefix bbf-yang;

  organization
    "Broadband Forum <https://www.broadband-forum.org>
     Common YANG Work Area";
  contact
    "Comments or questions about this Broadband Forum YANG module
     should be directed to <mailto:help@broadband-forum.org>.

     Editor:      Nick Hancock, ADTRAN

     Editor:      Ludwig Pauwels, Nokia

     PS Leader:   Joey Boyd, ADTRAN

     WA Director: Joey Boyd, ADTRAN

     WA Director: Sven Ooghe, Nokia";
  description
    "This module contains a collection of YANG definitions for
     supporting the Broadband Forum requirements on reusable data
     types as applicable to access network equipment. As such, this
     module is specific to access network equipment (e.g.,
     BBF-specified Access Nodes and FTTdp DPUs).

     Specifically, this module defines common types used throughout
     BBF data models.

     Copyright (c) 2017-2022, Broadband Forum

     Redistribution and use in source and binary forms, with or
     without modification, are permitted provided that the following
     conditions are met:

     1. Redistributions of source code must retain the above copyright
        notice, this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above
        copyright notice, this list of conditions and the following
        disclaimer in the documentation and/or other materials
        provided with the distribution.

     3. Neither the name of the copyright holder nor the names of its
        contributors may be used to endorse or promote products
        derived from this software without specific prior written
        permission.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
     CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

     The above license is used as a license under copyright only.
     Please reference the Forum IPR Policy for patent licensing terms
     <https://www.broadband-forum.org/ipr-policy>.

     Any moral rights which are necessary to exercise under the above
     license grant are also deemed granted under this license.

     This version of this YANG module is part of TR-383a5; see
     the TR itself for full legal notices.";

  revision 2022-03-01 {
    description
      "Amendment 5.
       * Approval Date:    2022-03-01.
       * Publication Date: 2022-03-01.";
    reference
      "TR-383a5: Common YANG Modules
                 <https://www.broadband-forum.org/technical/download/
                          TR-383_Amendment-5.pdf>";
  }
  revision 2021-06-02 {
    description
      "Amendment 4.
       * Approval Date:    2021-06-02.
       * Publication Date: 2021-06-02.";
    reference
      "TR-383a4: Common YANG Modules
                 <https://www.broadband-forum.org/technical/download/
                          TR-383_Amendment-4.pdf>";
  }
  revision 2020-10-13 {
    description
      "Amendment 3.
       * Approval Date:    2020-10-13.
       * Publication Date: 2020-10-13.";
    reference
      "TR-383a3: Common YANG Modules
                 <https://www.broadband-forum.org/technical/download/
                          TR-383_Amendment-3.pdf>";
  }
  revision 2019-10-21 {
    description
      "Amendment 2 Corrigendum 1.
       * Approval Date:    2019-10-21.
       * Publication Date: 2019-10-21.";
    reference
      "TR-383a2c1: Common YANG Modules
                 <https://www.broadband-forum.org/technical/download/
                          TR-383_Amendment-2.pdf>";
  }
  revision 2018-07-13 {
    description
      "Amendment 1.
       * Approval Date:    2018-06-04.
       * Publication Date: see revision date above.";
    reference
      "TR-383: Common YANG Modules
               <https://www.broadband-forum.org/technical/download/
                        TR-383_Amendment-1.pdf>";
  }
  revision 2017-05-08 {
    description
      "Initial revision.
       * Approval Date:    see revision date above.
       * Publication Date: 2017-06-02.";
    reference
      "TR-383: Common YANG Modules
               <https://www.broadband-forum.org/technical/download/
                        TR-383.pdf>";
  }
  revision 2016-07-18 {
    description
      "Initial revision.
       * Approval Date:    see revision date above.
       * Publication Date: 2016-08-05.";
    reference
      "TR-355: YANG Modules for FTTdp Management
               <https://www.broadband-forum.org/technical/download/
                        TR-355.pdf>";
  }

  typedef name-string {
    type string {
      length "1..64";
    }
    description
      "Used where a string is needed which has a maximum length of
       64 characters and a minimum length of 1 character.";
  }

  typedef percent {
    type uint8 {
      range "0..100";
    }
    units "percentage";
    description
      "A percentage.";
  }

  typedef performance-counter32 {
    type uint32;
    description
      "The 'performance-counter32' type represents a non-negative
       integer that monotonically increases until it reaches a maximum
       value of 2^32-1 (4294967295 decimal), but does not wrap around
       once the maximum value is reached.";
  }

  typedef performance-counter32-or-inactive {
    type union {
      type uint32;
      type enumeration {
        enum inactive {
          description
            "Indicates that this counter is not active.";
        }
      }
    }
    description
      "The 'performance-counter32-or-inactive' type represents a
       non-negative integer that monotonically increases until it
       reaches a maximum value of 2^32-1 (4294967295 decimal), but
       does not wrap around once the maximum value is reached.

       A special value (enum inactive) indicates that this counter
       is not active.";
  }

  typedef performance-counter64 {
    type uint64;
    description
      "The 'performance-counter64' type represents a non-negative
       integer that monotonically increases until it reaches a maximum
       value of 2^64-1 (18446744073709551615 decimal), but does not
       wrap around once the maximum value is reached.";
  }

  typedef string-ascii63-or-empty {
    type string {
      length "0..63";
      pattern '[ -~]*';
      // allows the 95 printable ASCII characters
    }
    description
      "Used where a string is needed which has a maximum length of
       63 characters and also allows for a null string (length = 0).

       The character set is limited to the 95 printable ASCII
       characters.";
  }

  typedef string-ascii64 {
    type string {
      length "1..64";
      pattern '[ -~]*';
    }
    description
      "Used where a string is represented using at least 1 and no more
       than 64 ASCII characters.

       The character set is limited to the 95 printable ASCII
       characters.";
  }

  typedef string-ascii64-or-empty {
    type string {
      length "0..64";
      pattern '[ -~]*';
    }
    description
      "Used where a string is needed which has a maximum length of
       64 characters and also allows for a null string (length = 0).

       The character set is limited to the 95 printable ASCII
       characters.";
  }

  typedef undetermined {
    type enumeration {
      enum undetermined {
        description
          "Indicates the value is not determined.";
      }
    }
    description
      "A type which defines an enumeration representing when
       the value for an object is not determined. Often, this is
       combined with other data via a union acting as a special value
       to indicate the undetermined state.";
  }

  typedef data-rate32 {
    type uint32;
    units "kbits/second";
    description
      "A type which represents the rate at which data is being
       transferred.";
  }

  typedef data-rate32-or-undetermined {
    type union {
      type undetermined;
      type data-rate32;
    }
    units "kbits/second";
    description
      "A type which represents the rate at which data is being
       transferred. A special value, 'undetermined', is used to
       indicate the data rate is undetermined.";
  }
}
