ENAUTO 300-435 study materials
ENAUTO 300-435 study resources

ENAUTO 300-435 practice questions

One question at a time. Build your ENAUTO 300-435 understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Network Programmability Foundation

A network engineer needs to retrieve a list of devices from a Cisco DNA Center controller using its REST API. Which encoding format does the API use for request and response bodies?

  1. YAML
  2. JSON Correct answer.
  3. Protocol Buffers
  4. XML

Explanation

Cisco DNA Center's intent API exchanges data in JSON, both for request payloads and for responses. Clients set the Content-Type and Accept headers to application/json. This is the standard representation for modern Cisco controller APIs.

Question 2Network Programmability Foundation

Which HTTP method should be used to modify an existing resource in a REST API when the client sends the complete updated representation?

  1. GET
  2. HEAD
  3. PUT Correct answer.
  4. POST

Explanation

PUT replaces the target resource with the representation supplied in the request, which matches sending a complete updated representation. POST typically creates a new subordinate resource, while GET and HEAD are safe read-only methods.

Question 3Network Programmability Foundation

An automation script authenticates to a Cisco SD-WAN vManage API. Which token type does vManage issue after a successful login to the /j_security_check endpoint?

  1. A session cookie containing a JSESSIONID Correct answer.
  2. A signed SAML assertion
  3. An OAuth 2.0 refresh token
  4. A bearer JWT issued by an external IdP

Explanation

vManage authenticates via the /j_security_check endpoint and returns a session cookie that includes JSESSIONID. The client then passes that cookie on subsequent API calls. This cookie-based session is distinct from OAuth or SAML flows.

Question 4Network Programmability Foundation

A developer wants to configure a Cisco IOS XE device programmatically using a model-driven approach over a secure, connection-oriented protocol. Which protocol and port combination fits?

  1. NETCONF over SSH on TCP 830 Correct answer.
  2. RESTCONF over HTTP on TCP 80
  3. TACACS+ over TCP 49
  4. SNMPv3 over UDP 161

Explanation

NETCONF runs over SSH by default on TCP port 830 and uses YANG data models for model-driven configuration. SNMP and TACACS+ serve different purposes, and RESTCONF should use HTTPS rather than plain HTTP in production.

Question 5Network Programmability Foundation

Which data modeling language is used to define the structure of data that NETCONF and RESTCONF can manipulate on Cisco devices?

  1. MIB
  2. YANG Correct answer.
  3. OpenAPI
  4. Protobuf

Explanation

YANG is the data modeling language that defines configuration and state data for NETCONF and RESTCONF. MIBs describe SNMP objects, while OpenAPI and Protobuf describe API or serialization schemas unrelated to device models.

Question 6Network Programmability Foundation

An engineer wants to consume a REST API from a Python script and parse the JSON response. Which standard library module converts a JSON response body into a Python dictionary?

  1. json Correct answer.
  2. csv
  3. re
  4. pickle

Explanation

The json module provides json.loads() to parse a JSON string into Python objects such as dictionaries. The csv, re, and pickle modules handle delimited files, regular expressions, and Python-specific serialization respectively.

Question 7Network Programmability Foundation

A Python script uses the requests library to call a controller API. Which argument should be used to send a JSON-serializable dictionary as the request body with the correct Content-Type?

  1. json= Correct answer.
  2. files=
  3. auth=
  4. data=

Explanation

Passing a dictionary with the json= parameter serializes it to JSON and sets the Content-Type header to application/json automatically. The data= parameter sends raw form or body content without JSON encoding.

Question 8Network Programmability Foundation

Which tool is a Cisco-provided Python SDK that wraps the DNA Center intent API and simplifies common automation tasks?

  1. Genie
  2. DNACenterAPI (dnacentersdk) Correct answer.
  3. NAPALM
  4. pyATS

Explanation

The dnacentersdk library is Cisco's Python SDK for the DNA Center intent API, exposing methods that map to API endpoints. Genie and pyATS focus on network testing and parsing, and NAPALM is a multi-vendor abstraction library.

Question 9Network Programmability Foundation

An engineer needs to make API calls idempotent so that retrying a failed request does not create duplicate resources. Which HTTP method best supports this property?

  1. CONNECT
  2. POST
  3. PUT Correct answer.
  4. PATCH

Explanation

PUT is idempotent because repeating the same request produces the same resulting resource state. POST is not idempotent and repeated calls can create duplicates, while PATCH may or may not be idempotent depending on the operation.

Question 10Network Programmability Foundation

Which characteristic distinguishes a model-driven telemetry approach from traditional SNMP polling for monitoring Cisco devices?

  1. The device pushes structured data streams to a collector at a configured interval Correct answer.
  2. The device sends unsolicited SNMP traps only on failures
  3. The collector polls individual OIDs on a fixed schedule
  4. The collector retrieves data using FTP transfers

Explanation

Model-driven telemetry has the device stream structured data, often encoded as JSON or GPB, to a collector on a configured subscription interval. This push model provides higher frequency and richer data than periodic SNMP polling.

Question 11Network Programmability Foundation

A REST API returns the status code 401 Unauthorized. What does this most likely indicate in a network automation client?

  1. The requested resource does not exist
  2. The request method is not allowed on the resource
  3. The client credentials or token are missing or invalid Correct answer.
  4. The server encountered an internal error

Explanation

A 401 status means the request lacks valid authentication credentials or the token has expired. The client should re-authenticate and retry. Other status codes indicate missing resources, server faults, or disallowed methods.

Question 12Network Programmability Foundation

An engineer wants to parse semi-structured CLI output from multiple Cisco platforms into structured Python data. Which Cisco library is designed for this purpose with a collection of prebuilt parsers?

  1. Jinja2
  2. Genie Correct answer.
  3. Requests
  4. Netmiko

Explanation

Genie, part of the pyATS ecosystem, provides parsers that convert CLI output into structured Python dictionaries. Requests is an HTTP client, Jinja2 is a templating engine, and Netmiko handles CLI connections rather than parsing.

Question 13Network Programmability Foundation

Which statement accurately describes the role of a YANG module in a NETCONF session?

  1. It encrypts the NETCONF transport layer
  2. It stores device logs for later retrieval
  3. It replaces SSH as the transport protocol
  4. It defines the data structure and constraints the device exposes Correct answer.

Explanation

A YANG module models the configuration and state data a device exposes, including types and constraints. NETCONF uses these models to validate and structure operations, while transport security is handled by SSH and TLS.

Question 14Network Programmability Foundation

A developer uses Ansible to push configuration to Cisco IOS devices. Which connection method allows Ansible to run modules directly over SSH without installing an agent on the device?

  1. winrm
  2. local with SNMP
  3. paramiko_ftp
  4. network_cli Correct answer.

Explanation

The network_cli connection plugin uses SSH to open a CLI session and run network modules without an agent. SNMP, WinRM, and FTP-based approaches do not provide this agentless CLI automation model.

Question 15Network Programmability Foundation

Which file format is most commonly used by Ansible to define structured variables and inventory data for network automation?

  1. PCAP
  2. BIN
  3. SO
  4. YAML Correct answer.

Explanation

Ansible playbooks, inventories, and variable files are typically written in YAML, which is human-readable and maps to structured data. PCAP, BIN, and SO files are binary or compiled formats unsuitable for this purpose.

Question 16Network Programmability Foundation

An engineer needs to compare two configuration files and identify lines that differ. Which Python standard library module provides a built-in diff capability?

  1. difflib Correct answer.
  2. hashlib
  3. socket
  4. argparse

Explanation

The difflib module provides classes such as unified_diff and SequenceMatcher to compare sequences and highlight differences. hashlib computes hashes, socket handles network connections, and argparse parses command-line arguments.

Question 17Network Programmability Foundation

Which Git operation should an engineer use to combine changes from a feature branch into the main branch while preserving a linear history?

  1. git stash
  2. git rebase Correct answer.
  3. git tag
  4. git clone

Explanation

Rebasing replays feature branch commits on top of the target branch, producing a linear history before merging. Cloning copies a repository, tagging marks commits, and stashing temporarily shelves changes.

Question 18Network Programmability Foundation

A CI/CD pipeline runs automated tests against network automation code before merging. Which practice best ensures that credentials are not committed to the repository?

  1. Storing secrets in environment variables or a vault Correct answer.
  2. Embedding tokens in the README
  3. Hardcoding credentials in the script
  4. Committing a .env file with plaintext passwords

Explanation

Secrets should be injected at runtime from environment variables or a secrets manager so they never enter version control. Hardcoding or committing plaintext credentials exposes them to anyone with repository access.

Question 19Network Programmability Foundation

A script authenticates to a REST API and receives a token with an expiration time. Which approach best handles token expiry during a long-running automation job?

  1. Ignore expiration and continue until a 401 response occurs
  2. Request a new token before every individual API call
  3. Detect 401 responses and re-authenticate before retrying the request Correct answer.
  4. Disable TLS verification to speed up re-authentication

Explanation

Robust clients detect 401 responses, refresh or re-authenticate, and retry the failed request. Ignoring expiry causes failures, requesting a token per call is inefficient, and disabling TLS verification weakens security.

Question 20Network Programmability Foundation

Which Python data structure is returned by json.loads() when the JSON text begins with a square bracket?

  1. A tuple
  2. A set
  3. A list Correct answer.
  4. A dictionary

Explanation

JSON arrays map to Python lists, so text beginning with a square bracket parses to a list. JSON objects map to dictionaries, and tuples and sets have no direct JSON representation.

Question 21Network Programmability Foundation

An engineer writes a Jinja2 template to generate device configuration. Which syntax correctly inserts the value of the variable hostname into the rendered output?

  1. {{ hostname }} Correct answer.
  2. {% hostname %}
  3. {# hostname #}
  4. <% hostname %>

Explanation

In Jinja2, double curly braces output the value of an expression, so {{ hostname }} renders the variable. Curly-percent braces denote statements, and curly-hash braces denote comments.

Question 22Network Programmability Foundation

Which RESTCONF request retrieves the configuration data for an interface using the YANG model exposed by a Cisco IOS XE device?

  1. POST to the operations URL with an empty body
  2. GET to the data resource URL with an Accept header of application/yang-data+json Correct answer.
  3. PUT to the root URL without a body
  4. DELETE to the data resource URL

Explanation

RESTCONF reads data with GET against the data resource path and uses an Accept header such as application/yang-data+json to request JSON-encoded YANG data. POST creates or invokes, DELETE removes, and PUT replaces data.

Question 23Network Programmability Foundation

What is the primary purpose of using an API version in the URL path, such as /dna/intent/api/v1/network-device?

  1. To select the transport protocol
  2. To specify the device's IOS version
  3. To allow the API to evolve without breaking existing clients Correct answer.
  4. To encrypt the request payload

Explanation

Versioning in the API path lets providers introduce changes while older clients continue using a stable contract. It does not perform encryption, identify device software versions, or select transport protocols.

Question 24Network Programmability Foundation

A network engineer needs to programmatically subscribe to streaming telemetry from a Cisco IOS XE device. Which pair of components is required?

  1. An SNMP manager and a MIB browser
  2. A syslog server and a TFTP server
  3. A telemetry subscription on the device and a collector to receive the stream Correct answer.
  4. A RADIUS server and a TACACS+ server

Explanation

Model-driven telemetry requires a subscription defining what to stream and how often, plus a collector that receives and stores the pushed data. SNMP, syslog, and AAA servers serve different monitoring and access functions.

Question 25Network Programmability Foundation

Which HTTP status code range indicates that a request was successfully received and processed by a REST API?

  1. 2xx Correct answer.
  2. 1xx
  3. 3xx
  4. 4xx

Explanation

The 2xx range signals successful processing, with codes such as 200 OK and 201 Created. Informational, redirection, and client error responses occupy the 1xx, 3xx, and 4xx ranges respectively.

Question 26Network Programmability Foundation

Which HTTP method is defined by REST semantics as safe and idempotent, meaning repeated identical calls return the same representation without changing server state?

  1. POST
  2. PATCH
  3. CONNECT
  4. GET Correct answer.

Explanation

In REST, GET retrieves a representation and must not alter server state, so repeating it yields the same result. POST creates or processes resources and is neither safe nor idempotent, and PATCH applies partial modifications.

Question 27Network Programmability Foundation

A developer needs to convert a Python dictionary into a JSON string before sending it in the body of an HTTP request to a controller. Which standard library function performs this conversion?

  1. json.loads()
  2. json.dump()
  3. json.load()
  4. json.dumps() Correct answer.

Explanation

json.dumps() serializes a Python object into a JSON-formatted string suitable for an HTTP body. The load/loads family works in the opposite direction, deserializing JSON into Python objects, and json.dump() writes to a file object rather than returning a string.

Question 28Network Programmability Foundation

Which encoding scheme is used by NETCONF to carry YANG-modeled configuration and state data in message payloads?

  1. YAML
  2. XML Correct answer.
  3. CSV
  4. Protocol Buffers

Explanation

NETCONF frames operations in XML and encodes configuration and state data as XML elements that follow the YANG data model. YAML and Protocol Buffers appear in other tooling contexts, and CSV is a tabular text format not used by NETCONF.

Question 29Network Programmability Foundation

Which protocol and port pairing is used for a NETCONF session established over a secure transport?

  1. Syslog on UDP 514
  2. HTTP on TCP 80
  3. SNMP on UDP 161
  4. SSH on TCP 830 Correct answer.

Explanation

NETCONF runs over SSH by default on TCP port 830, which provides authentication and encryption for the session. HTTP, SNMP, and syslog are separate management protocols with different purposes and transports.

Question 30Network Programmability Foundation

An engineer queries a RESTCONF API and receives the status code 404. Which interpretation is most accurate for the automation client?

  1. The device is temporarily overloaded and the request should be retried later
  2. The request was authenticated but the targeted resource path does not exist on the device Correct answer.
  3. The credentials supplied were rejected and a new token must be obtained
  4. The request succeeded and the response body contains the requested data

Explanation

HTTP 404 signals that the server could not match the request URI to an existing resource, for example a mistyped YANG path or container name. Authentication failures map to 401, overload or temporary unavailability to 503, and success to a 2xx code.

Question 31Network Programmability Foundation

A developer must parse a YANG module file to extract the list of defined nodes without relying on a device. Which approach best fits this requirement?

  1. Send a show running-config command and apply a regular expression to the output
  2. Parse the module text with a YANG-aware library such as pyang and inspect the parsed statement tree Correct answer.
  3. Read the module with json.loads() and iterate over the resulting dictionary
  4. Query the device with SNMP GET requests for each object identifier

Explanation

A YANG module is written in YANG syntax, so a YANG parser such as pyang builds a statement tree that can be traversed for node definitions. Regular expressions over CLI output and SNMP OID polling depend on a live device, and a YANG file is not JSON.

Question 32Network Programmability Foundation

An engineer wants to retrieve only the operational state of an interface through NETCONF rather than its configured values. Which filter design achieves this?

  1. Use a subtree filter that selects the state container under the interface entry Correct answer.
  2. Use a subtree filter that selects the config container under the interface entry
  3. Issue an edit-config operation targeting the candidate datastore
  4. Issue a get-config operation with the running datastore and no filter

Explanation

NETCONF separates configuration from state data: the config container holds intended configuration while the state container holds operational values. A subtree filter selecting state under the interface entry returns only that operational data from the get operation.

Question 33Network Programmability Foundation

A team stores automation code in Git and wants to record which commit introduced a specific configuration template change. Which Git feature answers this directly?

  1. git remote add of a second upstream
  2. git tag applied to the current HEAD
  3. git blame on the template file Correct answer.
  4. git stash of pending working-tree changes

Explanation

git blame annotates each line of a file with the commit and author that last changed it, which identifies the commit that introduced a specific change. Stash, tag, and remote commands manage workflow state rather than per-line history attribution.

Question 34Network Programmability Foundation

An engineer must choose a data modeling language that is used both to define device configuration models and to generate documentation and validation rules. Which language is designed for this purpose?

  1. Markdown
  2. HTML
  3. YANG Correct answer.
  4. INI

Explanation

YANG is a data modeling language that defines hierarchical configuration and state data, and it carries metadata such as descriptions, mandatory flags, and type constraints used for validation and documentation. Markdown, INI, and HTML are documentation or configuration text formats without model semantics.

Question 35Network Programmability Foundation

A developer writes a Python script that must read an API token from the environment rather than hard-coding it in source. Which standard library module provides access to environment variables?

  1. socket
  2. argparse
  3. os Correct answer.
  4. csv

Explanation

The os module exposes os.environ, a mapping of environment variables that scripts can read at runtime to obtain secrets. csv handles delimited files, socket manages network connections, and argparse parses command-line arguments.

Question 36Network Programmability Foundation

An engineer needs to model a repeatable list of VLAN entries in a YANG module so that each entry is uniquely identified by its VLAN ID. Which YANG construct provides this?

  1. A leaf statement with type string and no further constraints
  2. A list statement with a key statement naming the VLAN ID leaf Correct answer.
  3. A container statement holding a single leaf
  4. An augment statement adding nodes to another module

Explanation

A list represents multiple entries of the same structure, and the key statement designates one or more leafs whose values uniquely identify each entry. A single leaf or container holds one instance, and augment adds nodes to an existing module rather than defining keyed entries.

Question 37Network Programmability Foundation

A developer must decide between using a RESTCONF call and an SNMP poll to retrieve a single interface counter frequently. Which consideration most strongly favors RESTCONF in this scenario?

  1. RESTCONF uses UDP and therefore avoids TCP connection overhead
  2. RESTCONF returns structured, model-defined data over HTTP that is easier to parse and filter than SNMP OID walks Correct answer.
  3. RESTCONF is limited to configuration changes and cannot read counters
  4. RESTCONF requires no authentication while SNMP requires community strings

Explanation

RESTCONF returns JSON or XML payloads that follow the YANG model, so a script can address a specific resource path and parse structured data without decoding numeric OIDs. RESTCONF still requires authentication, runs over HTTP/TCP, and supports both configuration and state reads.

Question 38Network Programmability Foundation

A developer needs to iterate over a JSON array of device records returned by an API and build a new list containing only devices whose software version is outdated. Which Python approach is most idiomatic?

  1. A global variable that accumulates records across script runs
  2. A list comprehension that filters the parsed records by comparing each version field Correct answer.
  3. A try/except block wrapping the entire parse and filter logic
  4. A while loop that repeatedly calls the API until the list is empty

Explanation

A list comprehension expresses the filter-and-transform operation concisely over the already parsed JSON array, producing a new list of matching records. Repeated API calls, blanket exception handling, and global accumulation do not address the filtering task.

Question 39Network Programmability Foundation

An engineer must design an automation workflow that applies configuration changes to many devices and must be able to roll back cleanly if any device fails validation. Which design element best supports this requirement?

  1. Store changes only in the engineer's local working directory
  2. Rely on manual verification after each device is changed
  3. Send configuration through individual CLI commands with no saved baseline
  4. Use candidate datastores with commit confirmed or transactional rollback where the platform supports it Correct answer.

Explanation

Candidate datastores let changes be staged and validated before commit, and commit confirmed or transactional rollback restores the prior state if the change is not confirmed. Unverified CLI pushes, manual checks, and local-only storage provide no automated recovery path.

Question 40Network Programmability Foundation

A script receives a response from a controller API with a JSON body and a 201 status code. Which conclusion about the operation is most accurate?

  1. A new resource was created and its location is typically provided in the response headers Correct answer.
  2. The server redirected the request to a different endpoint
  3. The client must resend the request with different credentials
  4. The request failed because only 200 indicates success

Explanation

HTTP 201 Created confirms that the request produced a new resource, and the response commonly includes a Location header identifying it. Other 2xx codes also indicate success, 401 indicates credential problems, and 3xx codes represent redirection.

Question 41Automate APIs and Protocols

A Python script uses the Cisco DNA Center SDK (dnacentersdk) and must retrieve the list of network devices. Which SDK call performs this task?

  1. dnac.devices.get_device_list() Correct answer.
  2. dnac.network.get_devices()
  3. dnac.device.list_devices()
  4. dnac.devices.get_network_device()

Explanation

In the dnacentersdk, device-related operations live under the devices family, and the method that returns the device collection is get_device_list(). The other names do not exist in the SDK's devices API surface.

Question 42Automate APIs and Protocols

Which HTTP method and status code pair correctly describes deleting a configuration object through a RESTCONF interface?

  1. DELETE, with a 204 No Content on success Correct answer.
  2. PATCH, with a 202 Accepted on success
  3. PUT, with a 200 OK on success
  4. POST, with a 201 Created on success

Explanation

RESTCONF maps the YANG delete operation to the HTTP DELETE method, and a successful deletion normally returns 204 No Content because no representation is left to return. POST creates, PUT replaces, and PATCH merges, so none of them expresses deletion.

Question 43Automate APIs and Protocols

An engineer sends a NETCONF <get-config> RPC filtered to a single interface. What does the reply contain?

  1. An <ok> element confirming the filter was accepted
  2. Only the configuration data matching the filter, wrapped in <data> Correct answer.
  3. Operational state counters for the filtered interface
  4. The full running configuration regardless of the filter

Explanation

get-config retrieves configuration datastore content, and the filter element restricts the returned subtree to the requested nodes. The result is delivered inside a <data> element, not as an <ok> acknowledgement.

Question 44Automate APIs and Protocols

Which statement best describes the role of YANG in a model-driven programmability workflow?

  1. It encrypts management sessions between the controller and the device
  2. It replaces SNMP by defining MIB object identifiers
  3. It defines the data structure and types that NETCONF and RESTCONF expose Correct answer.
  4. It specifies the transport port used for gRPC telemetry

Explanation

YANG is a data modeling language that describes configuration and state trees, their types, and constraints. NETCONF and RESTCONF then encode and transport that modeled data; YANG itself provides no transport or security function.

Question 45Automate APIs and Protocols

In a Cisco SD-WAN deployment, which component is responsible for distributing policies and configuration to the WAN Edge routers?

  1. vBond orchestrator
  2. vSmart controller Correct answer.
  3. WAN Edge forwarding plane
  4. vManage analytics engine

Explanation

The vSmart controller holds the centralized control plane and pushes policies and templates down to the WAN Edge devices. The vBond handles authentication and initial orchestration, while vManage is the management and monitoring plane.

Question 46Automate APIs and Protocols

Which encoding is used by the body of a RESTCONF request when the media type is application/yang-data+json?

  1. XML
  2. JSON Correct answer.
  3. Protocol Buffers
  4. YANG source text

Explanation

RESTCONF defines two primary encodings: XML and JSON, selected through the media type. The +json suffix in application/yang-data+json explicitly requests JSON-encoded YANG data.

Question 47Automate APIs and Protocols

What is the purpose of the <hello> message exchanged at the start of a NETCONF session?

  1. To upload a YANG module to the server
  2. To advertise supported capabilities and the session ID Correct answer.
  3. To authenticate the client with a username and password
  4. To request the running configuration

Explanation

Each peer sends a hello containing the base capability plus optional capabilities and the session ID. This lets both sides learn which protocol features and data models they can use.

Question 48Automate APIs and Protocols

Which Python library is commonly used to parse NETCONF replies into structured XML that can be queried with XPath?

  1. requests
  2. xml.etree.ElementTree Correct answer.
  3. paramiko
  4. netmiko

Explanation

The standard-library xml.etree.ElementTree module parses XML documents and supports XPath-style queries on the resulting tree. requests handles HTTP, while netmiko and paramiko are used for CLI sessions over SSH.

Question 49Automate APIs and Protocols

A script uses ncclient to retrieve the running configuration. Which call correctly opens a connection and performs the retrieval?

  1. manager.connect(host=h, port=830, username=u, hostkey_verify=False) then get_config(source='running') Correct answer.
  2. ncclient.connect(host=h) then fetch_running()
  3. manager.open(host=h, port=830) then show_config('running')
  4. manager.connect(host=h) then get_running_config()

Explanation

ncclient exposes manager.connect() with host, port, and credential arguments, and the returned manager object provides get_config() with a source datastore. The other method names do not exist in the library.

Question 50Automate APIs and Protocols

A RESTCONF GET returns HTTP 404 for a URI that is syntactically valid. Which cause is most consistent with this response?

  1. The credentials lack write permission
  2. The device has no YANG modules installed
  3. The client omitted the Accept header
  4. The requested data node does not exist in the datastore Correct answer.

Explanation

A 404 Not Found in RESTCONF indicates that the target resource path does not resolve to existing data. Missing requested data is reported this way rather than as an authorization or media-type error.