5 API Handler The network controller exposes a programmable API used by service providers and customers to allow manipulation of network access and flow services, and the use of service, core, and transport resources. The service design and creation (SD&C) function will be the interface for the service providers and customers to create and request a service. The API exposed by the network controller is an abstraction of the network service and network SO that the customer or higher level application does not need to know the details of the network implementation. Depending on the state of the resources in the network and the request, a different network implementation could be implemented in real time. Again there are two separate abstraction layers, network service, and then network. Each is defined independently to allow changes at one layer to not impact the definition of the other layer. 6.4.1.6 Policy Policy is a principle or a set of rules that guides decisions, and is defined by the customer, the net- work designer, or engineer. Policy governs the resource allocation and placement for the service or network element, which is getting instantiated, SO as to meet the service-level agreement (SLA). Policy also prescribes actions to be taken in the event of a resource overload or failure condition. This is discussed in more detail in Chapter 7. 6.4.1.7 Data Collection Analytic and Events Function The network controller is a self-optimizing platform. It uses the telemetry collected from the adapt- ers and determines whether the state of the network should change to optimize service performance and network resource utilization. The ability of the network controller to self-optimize is enabled by the presence of a local DCAE function in the network controller that encapsulates the Big Data storage and analysis functions needed for the analytics. This function provides the reference infor- mation for the Active and Available Inventory (A&AI) function. The combination of DCAE and policy feeds into the orchestration 