# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Core Services Virtual Network API version: 1.0.0 extends: openapi/oracle-cloud-virtualnetwork-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 267 - target: $.paths['/allowedPeerRegionsForRemotePeering'].get update: x-apievangelist-phrasing: intent: List regions allowed for remote VCN peering effect: read questions: - Which OCI regions can I peer my VCN with across regions? - Is remote peering supported in every region or only some? instructions: - text: Show me the regions that support remote VCN peering. - text: List every region I can set up cross-region peering with. method: generated generated: '2026-09-26' - target: $.paths['/byoasns'].get update: x-apievangelist-phrasing: intent: List BYOASN resources in a compartment effect: read questions: - What bring-your-own ASNs have I imported into this compartment? - Can I filter my BYOASN resources by lifecycle state? instructions: - text: List the BYOASN resources in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show BYOASNs in compartment {compartmentId} that are in state {lifecycleState}. slots: compartmentId: query.compartmentId lifecycleState: query.lifecycleState method: generated generated: '2026-09-26' - target: $.paths['/byoasns'].post update: x-apievangelist-phrasing: intent: Import your own autonomous system number effect: write questions: - How do I bring my own ASN into Oracle Cloud? - What do I need to supply to register a BYOASN resource? instructions: - text: Create a BYOASN for ASN {asn} named {displayName} in compartment {compartmentId}. slots: asn: requestBody.asn displayName: requestBody.displayName compartmentId: requestBody.compartmentId - text: Register my autonomous system number {asn} in compartment {compartmentId} as {displayName}. slots: asn: requestBody.asn compartmentId: requestBody.compartmentId displayName: requestBody.displayName method: generated generated: '2026-09-26' - target: $.paths['/byoasns/{byoasnId}'].get update: x-apievangelist-phrasing: intent: Get a BYOASN resource effect: read questions: - Where can I see the details and state of one imported ASN? - Can I check whether my BYOASN has finished validation? instructions: - text: Get BYOASN {byoasnId}. slots: byoasnId: path.byoasnId - text: Show the lifecycle state of BYOASN {byoasnId}. slots: byoasnId: path.byoasnId method: generated generated: '2026-09-26' - target: $.paths['/byoasns/{byoasnId}'].put update: x-apievangelist-phrasing: intent: Rename or retag a BYOASN resource effect: write questions: - Can I change the display name of a BYOASN after importing it? - What fields on an imported ASN can I update? instructions: - text: Rename BYOASN {byoasnId} to {displayName}. slots: byoasnId: path.byoasnId displayName: requestBody.displayName - text: Update the tags on BYOASN {byoasnId}. slots: byoasnId: path.byoasnId method: generated generated: '2026-09-26' - target: $.paths['/byoasns/{byoasnId}'].delete update: x-apievangelist-phrasing: intent: Delete a BYOASN resource effect: destructive questions: - How do I remove an ASN I imported that I no longer need? - Which states must a BYOASN be in before it can be deleted? instructions: - text: Delete BYOASN {byoasnId}. slots: byoasnId: path.byoasnId - text: Remove the imported ASN resource {byoasnId} from my tenancy. slots: byoasnId: path.byoasnId method: generated generated: '2026-09-26' - target: $.paths['/byoasns/{byoasnId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a BYOASN to another compartment effect: write questions: - Can I move an imported ASN resource into a different compartment? - What happens to a BYOASN when I change its compartment? instructions: - text: Move BYOASN {byoasnId} into compartment {compartmentId}. slots: byoasnId: path.byoasnId compartmentId: requestBody.compartmentId - text: Relocate my imported ASN {byoasnId} to compartment {compartmentId}. slots: byoasnId: path.byoasnId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/byoasns/{byoasnId}/actions/validate'].post update: x-apievangelist-phrasing: intent: Submit a BYOASN for validation effect: write questions: - How do I get my imported ASN validated by Oracle? - When should I submit a BYOASN for ownership validation? instructions: - text: Submit BYOASN {byoasnId} for validation. slots: byoasnId: path.byoasnId - text: Start ownership validation on imported ASN {byoasnId}. slots: byoasnId: path.byoasnId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges'].get update: x-apievangelist-phrasing: intent: List BYOIP CIDR ranges in a compartment effect: read questions: - Which bring-your-own IP ranges have I imported into this compartment? - Can I filter my BYOIP ranges by display name or state? instructions: - text: List the BYOIP ranges in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Find BYOIP ranges named {displayName} in compartment {compartmentId}. slots: displayName: query.displayName compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges'].post update: x-apievangelist-phrasing: intent: Import a BYOIP CIDR block effect: write questions: - How do I bring my own public IPv4 or IPv6 range into OCI? - Can I import an IPv6 prefix as a BYOIP range? instructions: - text: Create a BYOIP range for CIDR {cidrBlock} in compartment {compartmentId}. slots: cidrBlock: requestBody.cidrBlock compartmentId: requestBody.compartmentId - text: Import IPv6 prefix {ipv6CidrBlock} as a BYOIP range in compartment {compartmentId}. slots: ipv6CidrBlock: requestBody.ipv6CidrBlock compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}'].get update: x-apievangelist-phrasing: intent: Get a BYOIP CIDR range effect: read questions: - Where do I see the status and CIDR details of one BYOIP range? - Can I check whether my imported IP range is provisioned or advertised? instructions: - text: Get BYOIP range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId - text: Show me the lifecycle state of BYOIP range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}'].put update: x-apievangelist-phrasing: intent: Rename or retag a BYOIP range effect: write questions: - Can I rename an imported BYOIP CIDR block? - Which attributes of a BYOIP range are editable? instructions: - text: Rename BYOIP range {byoipRangeId} to {displayName}. slots: byoipRangeId: path.byoipRangeId displayName: requestBody.displayName - text: Update the tags on BYOIP range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}'].delete update: x-apievangelist-phrasing: intent: Delete a BYOIP range effect: destructive questions: - How do I remove an imported IP range from my tenancy? - What state does a BYOIP range need to be in before I can delete it? instructions: - text: Delete BYOIP range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId - text: Remove imported CIDR block {byoipRangeId} from OCI. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}/actions/advertise'].post update: x-apievangelist-phrasing: intent: Start BGP advertisement of a BYOIP range effect: write questions: - How do I start announcing my imported IP range over BGP? - Does a BYOIP range have to be provisioned before it can be advertised? instructions: - text: Advertise BYOIP range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId - text: Begin BGP route advertisements for imported block {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a BYOIP range to another compartment effect: write questions: - Can I move an imported CIDR block into a different compartment? - What is required to relocate a BYOIP range between compartments? instructions: - text: Move BYOIP range {byoipRangeId} into compartment {compartmentId}. slots: byoipRangeId: path.byoipRangeId compartmentId: requestBody.compartmentId - text: Relocate imported IP block {byoipRangeId} to compartment {compartmentId}. slots: byoipRangeId: path.byoipRangeId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}/actions/setOrigin/byoasn'].post update: x-apievangelist-phrasing: intent: Set a BYOIP range's origin to my own ASN effect: write questions: - Can my imported IP range be originated from my own BYOASN instead of Oracle's ASN? - Is AS path prepending supported when I set a custom origin ASN? instructions: - text: Set the origin ASN of BYOIP range {byoipRangeId} to BYOASN {byoasnId}. slots: byoipRangeId: path.byoipRangeId byoasnId: requestBody.byoasnId - text: Originate range {byoipRangeId} from BYOASN {byoasnId} with AS path prepend length {asPathPrependLength}. slots: byoipRangeId: path.byoipRangeId byoasnId: requestBody.byoasnId asPathPrependLength: requestBody.asPathPrependLength method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}/actions/setOrigin/oracleAsn'].post update: x-apievangelist-phrasing: intent: Revert a BYOIP range's origin to Oracle's ASN effect: write questions: - How do I switch my imported prefix back to being originated by OCI's ASN? - Can I undo a custom origin ASN on a BYOIP range? instructions: - text: Set the origin ASN of BYOIP range {byoipRangeId} back to Oracle. slots: byoipRangeId: path.byoipRangeId - text: Make OCI's own ASN the origin for imported prefix {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}/actions/validate'].post update: x-apievangelist-phrasing: intent: Submit a BYOIP range for validation effect: write questions: - How do I ask Oracle to validate ownership of my imported IP range? - What should be in place before I submit a BYOIP range for validation? instructions: - text: Submit BYOIP range {byoipRangeId} for validation. slots: byoipRangeId: path.byoipRangeId - text: Kick off ownership validation for imported CIDR {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}/actions/withdraw'].post update: x-apievangelist-phrasing: intent: Stop BGP advertisement of a BYOIP range effect: write questions: - How do I stop announcing my imported IP range to the internet? - Can I pause BGP advertisement of a BYOIP block without deleting it? instructions: - text: Withdraw the BGP advertisement for BYOIP range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId - text: Stop advertising imported block {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/byoipRanges/{byoipRangeId}/byoipAllocatedRanges'].get update: x-apievangelist-phrasing: intent: List BYOIP subranges allocated to IP pools effect: read questions: - Which parts of my BYOIP range are already allocated to public IP pools? - Can I see how an imported CIDR block has been split across pools? instructions: - text: List the allocated subranges of BYOIP range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId - text: Show which pools use pieces of imported range {byoipRangeId}. slots: byoipRangeId: path.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/captureFilters'].get update: x-apievangelist-phrasing: intent: List VTAP capture filters effect: read questions: - What VTAP capture filters exist in my compartment? - Can I filter capture filters by name or lifecycle state? instructions: - text: List the capture filters in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Find capture filters named {displayName} in compartment {compartmentId}. slots: displayName: query.displayName compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/captureFilters'].post update: x-apievangelist-phrasing: intent: Create a VTAP capture filter effect: write questions: - How do I define which traffic a virtual test access point captures? - Can a capture filter include custom capture rules when I create it? instructions: - text: Create a capture filter of type {filterType} in compartment {compartmentId}. slots: filterType: requestBody.filterType compartmentId: requestBody.compartmentId - text: Create VTAP capture filter {displayName} in compartment {compartmentId} with rules {vtapCaptureFilterRules} and type {filterType}. slots: displayName: requestBody.displayName compartmentId: requestBody.compartmentId vtapCaptureFilterRules: requestBody.vtapCaptureFilterRules filterType: requestBody.filterType method: generated generated: '2026-09-26' - target: $.paths['/captureFilters/{captureFilterId}'].get update: x-apievangelist-phrasing: intent: Get a VTAP capture filter effect: read questions: - Where can I see the rules defined in one capture filter? - Can I look up a single VTAP capture filter by its OCID? instructions: - text: Get capture filter {captureFilterId}. slots: captureFilterId: path.captureFilterId - text: Show the capture rules in filter {captureFilterId}. slots: captureFilterId: path.captureFilterId method: generated generated: '2026-09-26' - target: $.paths['/captureFilters/{captureFilterId}'].put update: x-apievangelist-phrasing: intent: Update a VTAP capture filter effect: write questions: - Can I change the capture rules on an existing capture filter? - How do I rename a VTAP capture filter? instructions: - text: Rename capture filter {captureFilterId} to {displayName}. slots: captureFilterId: path.captureFilterId displayName: requestBody.displayName - text: Replace the rules on capture filter {captureFilterId} with {vtapCaptureFilterRules}. slots: captureFilterId: path.captureFilterId vtapCaptureFilterRules: requestBody.vtapCaptureFilterRules method: generated generated: '2026-09-26' - target: $.paths['/captureFilters/{captureFilterId}'].delete update: x-apievangelist-phrasing: intent: Delete a VTAP capture filter effect: destructive questions: - How do I get rid of a capture filter I'm not using? - Is deleting a VTAP capture filter immediate or asynchronous? instructions: - text: Delete capture filter {captureFilterId}. slots: captureFilterId: path.captureFilterId - text: Remove VTAP capture filter {captureFilterId} permanently. slots: captureFilterId: path.captureFilterId method: generated generated: '2026-09-26' - target: $.paths['/captureFilters/{captureFilterId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a capture filter to another compartment effect: write questions: - Can I move a VTAP capture filter into another compartment? - Does moving a capture filter keep it in the same tenancy? instructions: - text: Move capture filter {captureFilterId} into compartment {compartmentId}. slots: captureFilterId: path.captureFilterId compartmentId: requestBody.compartmentId - text: Relocate VTAP filter {captureFilterId} to compartment {compartmentId}. slots: captureFilterId: path.captureFilterId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/cpeDeviceShapes'].get update: x-apievangelist-phrasing: intent: List supported CPE device types effect: read questions: - Which on-premises router models can OCI generate VPN config for? - What CPE device types are supported for Site-to-Site VPN configuration content? instructions: - text: List the supported CPE device shapes. - text: Show every router vendor and platform the Networking service has CPE config templates for. method: generated generated: '2026-09-26' - target: $.paths['/cpeDeviceShapes/{cpeDeviceShapeId}'].get update: x-apievangelist-phrasing: intent: Get details of a CPE device type effect: read questions: - What questions do I need to answer to generate config for a specific router model? - Can I see the parameters a given CPE device type needs? instructions: - text: Get CPE device shape {cpeDeviceShapeId}. slots: cpeDeviceShapeId: path.cpeDeviceShapeId - text: Show the configuration questions for CPE device type {cpeDeviceShapeId}. slots: cpeDeviceShapeId: path.cpeDeviceShapeId method: generated generated: '2026-09-26' - target: $.paths['/cpes'].get update: x-apievangelist-phrasing: intent: List customer-premises equipment objects effect: read questions: - Which on-premises CPE objects have I defined in this compartment? - Where can I see all the customer-premises equipment registered for my VPNs? instructions: - text: List the CPEs in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show all customer-premises equipment objects in compartment {compartmentId}. slots: compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/cpes'].post update: x-apievangelist-phrasing: intent: Register a customer-premises equipment object effect: write questions: - How do I register my on-premises router's public IP for a Site-to-Site VPN? - Can I create a CPE with a private IP address? instructions: - text: Create a CPE for public IP {ipAddress} in compartment {compartmentId}. slots: ipAddress: requestBody.ipAddress compartmentId: requestBody.compartmentId - text: Register router {displayName} at {ipAddress} in compartment {compartmentId} using device shape {cpeDeviceShapeId}. slots: displayName: requestBody.displayName ipAddress: requestBody.ipAddress compartmentId: requestBody.compartmentId cpeDeviceShapeId: requestBody.cpeDeviceShapeId method: generated generated: '2026-09-26' - target: $.paths['/cpes/{cpeId}'].get update: x-apievangelist-phrasing: intent: Get a customer-premises equipment object effect: read questions: - Where can I see the IP address and device type of one CPE? - Can I look up a CPE object by its OCID? instructions: - text: Get CPE {cpeId}. slots: cpeId: path.cpeId - text: Show the details of customer-premises equipment {cpeId}. slots: cpeId: path.cpeId method: generated generated: '2026-09-26' - target: $.paths['/cpes/{cpeId}'].put update: x-apievangelist-phrasing: intent: Rename a CPE or change its device type effect: write questions: - Can I change the device type recorded on an existing CPE? - Is it possible to rename a customer-premises equipment object? instructions: - text: Rename CPE {cpeId} to {displayName}. slots: cpeId: path.cpeId displayName: requestBody.displayName - text: Set the device shape of CPE {cpeId} to {cpeDeviceShapeId}. slots: cpeId: path.cpeId cpeDeviceShapeId: requestBody.cpeDeviceShapeId method: generated generated: '2026-09-26' - target: $.paths['/cpes/{cpeId}'].delete update: x-apievangelist-phrasing: intent: Delete a customer-premises equipment object effect: destructive questions: - How do I remove a CPE object I no longer use? - Can I delete a CPE that's still connected to a DRG? instructions: - text: Delete CPE {cpeId}. slots: cpeId: path.cpeId - text: Remove customer-premises equipment {cpeId} from my tenancy. slots: cpeId: path.cpeId method: generated generated: '2026-09-26' - target: $.paths['/cpes/{cpeId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a CPE to another compartment effect: write questions: - Can I move a CPE object into another compartment? - Does changing a CPE's compartment affect its VPN connections? instructions: - text: Move CPE {cpeId} into compartment {compartmentId}. slots: cpeId: path.cpeId compartmentId: requestBody.compartmentId - text: Relocate customer-premises equipment {cpeId} to compartment {compartmentId}. slots: cpeId: path.cpeId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/cpes/{cpeId}/cpeConfigContent'].get update: x-apievangelist-phrasing: intent: Render router config for a CPE effect: read questions: - How do I get ready-to-paste router configuration for my on-premises CPE? - Can OCI generate the device config covering all IPSec connections on a CPE? instructions: - text: Render the device configuration content for CPE {cpeId}. slots: cpeId: path.cpeId - text: Generate the router config my network engineer needs for CPE {cpeId}. slots: cpeId: path.cpeId method: generated generated: '2026-09-26' - target: $.paths['/crossConnectGroups'].get update: x-apievangelist-phrasing: intent: List FastConnect cross-connect groups effect: read questions: - What cross-connect groups do I have in this compartment? - Can I filter cross-connect groups by lifecycle state? instructions: - text: List the cross-connect groups in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show cross-connect groups in compartment {compartmentId} with state {lifecycleState}. slots: compartmentId: query.compartmentId lifecycleState: query.lifecycleState method: generated generated: '2026-09-26' - target: $.paths['/crossConnectGroups'].post update: x-apievangelist-phrasing: intent: Create a FastConnect cross-connect group effect: write questions: - How do I set up a cross-connect group for FastConnect colocation? - Can I enable MACsec when creating a cross-connect group? instructions: - text: Create a cross-connect group named {displayName} in compartment {compartmentId}. slots: displayName: requestBody.displayName compartmentId: requestBody.compartmentId - text: Create a cross-connect group in compartment {compartmentId} with MACsec settings {macsecProperties}. slots: compartmentId: requestBody.compartmentId macsecProperties: requestBody.macsecProperties method: generated generated: '2026-09-26' - target: $.paths['/crossConnectGroups/{crossConnectGroupId}'].get update: x-apievangelist-phrasing: intent: Get a cross-connect group effect: read questions: - Where can I see the settings of one FastConnect cross-connect group? - Can I check the MACsec configuration on a cross-connect group? instructions: - text: Get cross-connect group {crossConnectGroupId}. slots: crossConnectGroupId: path.crossConnectGroupId - text: Show the details of cross-connect group {crossConnectGroupId}. slots: crossConnectGroupId: path.crossConnectGroupId method: generated generated: '2026-09-26' - target: $.paths['/crossConnectGroups/{crossConnectGroupId}'].put update: x-apievangelist-phrasing: intent: Update a cross-connect group effect: write questions: - Can I change the customer reference name on a cross-connect group? - Is it possible to turn on MACsec for an existing cross-connect group? instructions: - text: Rename cross-connect group {crossConnectGroupId} to {displayName}. slots: crossConnectGroupId: path.crossConnectGroupId displayName: requestBody.displayName - text: Set the customer reference on cross-connect group {crossConnectGroupId} to {customerReferenceName}. slots: crossConnectGroupId: path.crossConnectGroupId customerReferenceName: requestBody.customerReferenceName method: generated generated: '2026-09-26' - target: $.paths['/crossConnectGroups/{crossConnectGroupId}'].delete update: x-apievangelist-phrasing: intent: Delete a cross-connect group effect: destructive questions: - How do I delete an empty cross-connect group? - Can I delete a cross-connect group that still contains cross-connects? instructions: - text: Delete cross-connect group {crossConnectGroupId}. slots: crossConnectGroupId: path.crossConnectGroupId - text: Remove the FastConnect cross-connect group {crossConnectGroupId}. slots: crossConnectGroupId: path.crossConnectGroupId method: generated generated: '2026-09-26' - target: $.paths['/crossConnectGroups/{crossConnectGroupId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a cross-connect group to another compartment effect: write questions: - Can I move a cross-connect group into a different compartment? - Does a cross-connect group have to stay in the same tenancy when moved? instructions: - text: Move cross-connect group {crossConnectGroupId} into compartment {compartmentId}. slots: crossConnectGroupId: path.crossConnectGroupId compartmentId: requestBody.compartmentId - text: Relocate the cross-connect group {crossConnectGroupId} to compartment {compartmentId}. slots: crossConnectGroupId: path.crossConnectGroupId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/crossConnectLocations'].get update: x-apievangelist-phrasing: intent: List FastConnect cross-connect locations effect: read questions: - Which FastConnect locations can I install a cross-connect at? - Where do I find valid location names for a new cross-connect? instructions: - text: List the cross-connect locations available to compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show FastConnect colocation sites for compartment {compartmentId}. slots: compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/crossConnectPortSpeedShapes'].get update: x-apievangelist-phrasing: intent: List cross-connect port speeds effect: read questions: - What port speeds are available for a FastConnect cross-connect? - Can I get 100 Gbps ports for a cross-connect? instructions: - text: List the cross-connect port speed shapes for compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show which cross-connect port speeds I can order in compartment {compartmentId}. slots: compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/crossConnects'].get update: x-apievangelist-phrasing: intent: List FastConnect cross-connects effect: read questions: - Which cross-connects exist in my compartment? - Can I list only the cross-connects that belong to one cross-connect group? instructions: - text: List the cross-connects in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List cross-connects in group {crossConnectGroupId} within compartment {compartmentId}. slots: crossConnectGroupId: query.crossConnectGroupId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/crossConnects'].post update: x-apievangelist-phrasing: intent: Create a FastConnect cross-connect effect: write questions: - How do I order a physical cross-connect for FastConnect? - Can I place a new cross-connect inside an existing cross-connect group? instructions: - text: Create a cross-connect at {locationName} with port speed {portSpeedShapeName} in compartment {compartmentId}. slots: locationName: requestBody.locationName portSpeedShapeName: requestBody.portSpeedShapeName compartmentId: requestBody.compartmentId - text: Add a {portSpeedShapeName} cross-connect at {locationName} to group {crossConnectGroupId} in compartment {compartmentId}. slots: portSpeedShapeName: requestBody.portSpeedShapeName locationName: requestBody.locationName crossConnectGroupId: requestBody.crossConnectGroupId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/crossConnects/{crossConnectId}'].get update: x-apievangelist-phrasing: intent: Get a cross-connect effect: read questions: - Where can I see the location and port speed of one cross-connect? - Can I look up a single cross-connect by OCID? instructions: - text: Get cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId - text: Show the configuration of cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId method: generated generated: '2026-09-26' - target: $.paths['/crossConnects/{crossConnectId}'].put update: x-apievangelist-phrasing: intent: Update or activate a cross-connect effect: write questions: - How do I activate a cross-connect once the physical cabling is done? - Can I change the MACsec settings on an existing cross-connect? instructions: - text: Activate cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId - text: Set isActive to {isActive} on cross-connect {crossConnectId}. slots: isActive: requestBody.isActive crossConnectId: path.crossConnectId - text: Rename cross-connect {crossConnectId} to {displayName}. slots: crossConnectId: path.crossConnectId displayName: requestBody.displayName method: generated generated: '2026-09-26' - target: $.paths['/crossConnects/{crossConnectId}'].delete update: x-apievangelist-phrasing: intent: Delete a cross-connect effect: destructive questions: - Can I delete a cross-connect that is still mapped to a virtual circuit? - How do I decommission a FastConnect cross-connect? instructions: - text: Delete cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId - text: Decommission FastConnect cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId method: generated generated: '2026-09-26' - target: $.paths['/crossConnects/{crossConnectId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a cross-connect to another compartment effect: write questions: - Can I move a single cross-connect into another compartment? - What's involved in relocating a cross-connect between compartments? instructions: - text: Move cross-connect {crossConnectId} into compartment {compartmentId}. slots: crossConnectId: path.crossConnectId compartmentId: requestBody.compartmentId - text: Put cross-connect {crossConnectId} in compartment {compartmentId}. slots: crossConnectId: path.crossConnectId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/crossConnects/{crossConnectId}/letterOfAuthority'].get update: x-apievangelist-phrasing: intent: Get a cross-connect's Letter of Authority effect: read questions: - Where do I get the Letter of Authority to give my colocation provider? - Can I download the LOA for a FastConnect cross-connect? instructions: - text: Get the Letter of Authority for cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId - text: Fetch the LOA I need to hand the data center for cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId method: generated generated: '2026-09-26' - target: $.paths['/crossConnects/{crossConnectId}/status'].get update: x-apievangelist-phrasing: intent: Check a cross-connect's link status effect: read questions: - Is my cross-connect's physical link up and receiving light? - How can I check the light levels and interface state on a cross-connect? instructions: - text: Get the status of cross-connect {crossConnectId}. slots: crossConnectId: path.crossConnectId - text: Check whether cross-connect {crossConnectId} is up. slots: crossConnectId: path.crossConnectId method: generated generated: '2026-09-26' - target: $.paths['/dhcps'].get update: x-apievangelist-phrasing: intent: List DHCP option sets effect: read questions: - What DHCP option sets are defined in my VCN? - Can I list DHCP options across a whole compartment instead of one VCN? instructions: - text: List the DHCP option sets in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List DHCP options for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/dhcps'].post update: x-apievangelist-phrasing: intent: Create a DHCP option set for a VCN effect: write questions: - How do I set custom DNS servers or search domains for a VCN's subnets? - What goes into a new set of DHCP options? instructions: - text: Create DHCP options {options} for VCN {vcnId} in compartment {compartmentId}. slots: options: requestBody.options vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create a DHCP option set named {displayName} for VCN {vcnId} in compartment {compartmentId} with options {options}. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/dhcps/{dhcpId}'].get update: x-apievangelist-phrasing: intent: Get a DHCP option set effect: read questions: - Which DNS and search-domain settings are in a given DHCP option set? - Can I view one set of DHCP options by its OCID? instructions: - text: Get DHCP options {dhcpId}. slots: dhcpId: path.dhcpId - text: Show the options in DHCP set {dhcpId}. slots: dhcpId: path.dhcpId method: generated generated: '2026-09-26' - target: $.paths['/dhcps/{dhcpId}'].put update: x-apievangelist-phrasing: intent: Update a DHCP option set effect: write questions: - Can I change the DNS servers in an existing DHCP option set? - Do DHCP option changes replace the whole list of options? instructions: - text: Replace the options in DHCP set {dhcpId} with {options}. slots: dhcpId: path.dhcpId options: requestBody.options - text: Rename DHCP option set {dhcpId} to {displayName}. slots: dhcpId: path.dhcpId displayName: requestBody.displayName method: generated generated: '2026-09-26' - target: $.paths['/dhcps/{dhcpId}'].delete update: x-apievangelist-phrasing: intent: Delete a DHCP option set effect: destructive questions: - Can I delete a DHCP option set that a subnet is still using? - Is it possible to delete a VCN's default DHCP options? instructions: - text: Delete DHCP options {dhcpId}. slots: dhcpId: path.dhcpId - text: Remove the unused DHCP option set {dhcpId}. slots: dhcpId: path.dhcpId method: generated generated: '2026-09-26' - target: $.paths['/dhcps/{dhcpId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a DHCP option set to another compartment effect: write questions: - Can DHCP options live in a different compartment than their VCN? - How would I move a set of DHCP options to another compartment? instructions: - text: Move DHCP options {dhcpId} into compartment {compartmentId}. slots: dhcpId: path.dhcpId compartmentId: requestBody.compartmentId - text: Relocate DHCP option set {dhcpId} to compartment {compartmentId}. slots: dhcpId: path.dhcpId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/drgAttachments'].get update: x-apievangelist-phrasing: intent: List DRG attachments effect: read questions: - Which networks are attached to my dynamic routing gateways? - Can I filter DRG attachments by attachment type, like VCN or IPSec tunnel? instructions: - text: List the DRG attachments in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List attachments on DRG {drgId} in compartment {compartmentId} of type {attachmentType}. slots: drgId: query.drgId compartmentId: query.compartmentId attachmentType: query.attachmentType method: generated generated: '2026-09-26' - target: $.paths['/drgAttachments'].post update: x-apievangelist-phrasing: intent: Attach a DRG to a network resource effect: write questions: - How do I attach a VCN to a dynamic routing gateway? - Can I choose which DRG route table an attachment uses when I create it? instructions: - text: Attach DRG {drgId} to VCN {vcnId}. slots: drgId: requestBody.drgId vcnId: requestBody.vcnId - text: Attach DRG {drgId} to network {networkDetails} using DRG route table {drgRouteTableId}. slots: drgId: requestBody.drgId networkDetails: requestBody.networkDetails drgRouteTableId: requestBody.drgRouteTableId method: generated generated: '2026-09-26' - target: $.paths['/drgAttachments/{drgAttachmentId}'].get update: x-apievangelist-phrasing: intent: Get a DRG attachment effect: read questions: - Which route table is a particular DRG attachment using? - Can I look up one DRG attachment by its OCID? instructions: - text: Get DRG attachment {drgAttachmentId}. slots: drgAttachmentId: path.drgAttachmentId - text: Show the routing settings of DRG attachment {drgAttachmentId}. slots: drgAttachmentId: path.drgAttachmentId method: generated generated: '2026-09-26' - target: $.paths['/drgAttachments/{drgAttachmentId}'].put update: x-apievangelist-phrasing: intent: Change a DRG attachment's routing effect: write questions: - How do I assign a different DRG route table to an attachment? - Can I set an export route distribution on a DRG attachment? instructions: - text: Point DRG attachment {drgAttachmentId} at DRG route table {drgRouteTableId}. slots: drgAttachmentId: path.drgAttachmentId drgRouteTableId: requestBody.drgRouteTableId - text: Set export route distribution {exportDrgRouteDistributionId} on DRG attachment {drgAttachmentId}. slots: exportDrgRouteDistributionId: requestBody.exportDrgRouteDistributionId drgAttachmentId: path.drgAttachmentId method: generated generated: '2026-09-26' - target: $.paths['/drgAttachments/{drgAttachmentId}'].delete update: x-apievangelist-phrasing: intent: Detach a DRG from a network effect: destructive questions: - How do I detach a VCN from its DRG? - Is detaching a DRG attachment asynchronous? instructions: - text: Delete DRG attachment {drgAttachmentId}. slots: drgAttachmentId: path.drgAttachmentId - text: Detach the network behind DRG attachment {drgAttachmentId}. slots: drgAttachmentId: path.drgAttachmentId method: generated generated: '2026-09-26' - target: $.paths['/drgAttachments/{drgAttachmentId}/actions/removeExportDrgRouteDistribution'].post update: x-apievangelist-phrasing: intent: Stop advertising routes to a DRG attachment effect: destructive questions: - How do I stop the DRG from advertising any routes to one attachment? - Can I remove the export route distribution from a DRG attachment? instructions: - text: Remove the export route distribution from DRG attachment {drgAttachmentId}. slots: drgAttachmentId: path.drgAttachmentId - text: Stop route advertisement to DRG attachment {drgAttachmentId}. slots: drgAttachmentId: path.drgAttachmentId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions'].get update: x-apievangelist-phrasing: intent: List a DRG's route distributions effect: read questions: - What import and export route distributions does my DRG have? - Can I filter a DRG's route distributions by name? instructions: - text: List the route distributions on DRG {drgId}. slots: drgId: query.drgId - text: Find route distributions named {displayName} on DRG {drgId}. slots: displayName: query.displayName drgId: query.drgId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions'].post update: x-apievangelist-phrasing: intent: Create a DRG route distribution effect: write questions: - How do I create an import route distribution for a DRG? - What distribution types can a DRG route distribution have? instructions: - text: Create a {distributionType} route distribution on DRG {drgId}. slots: distributionType: requestBody.distributionType drgId: requestBody.drgId - text: Create route distribution {displayName} of type {distributionType} for DRG {drgId}. slots: displayName: requestBody.displayName distributionType: requestBody.distributionType drgId: requestBody.drgId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions/{drgRouteDistributionId}'].get update: x-apievangelist-phrasing: intent: Get a DRG route distribution effect: read questions: - Where can I see whether a route distribution is import or export? - Can I look up a single DRG route distribution? instructions: - text: Get DRG route distribution {drgRouteDistributionId}. slots: drgRouteDistributionId: path.drgRouteDistributionId - text: Show the details of route distribution {drgRouteDistributionId}. slots: drgRouteDistributionId: path.drgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions/{drgRouteDistributionId}'].put update: x-apievangelist-phrasing: intent: Rename a DRG route distribution effect: write questions: - Can I rename a DRG route distribution? - Which properties of a route distribution can be changed after creation? instructions: - text: Rename DRG route distribution {drgRouteDistributionId} to {displayName}. slots: drgRouteDistributionId: path.drgRouteDistributionId displayName: requestBody.displayName - text: Update the tags on route distribution {drgRouteDistributionId}. slots: drgRouteDistributionId: path.drgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions/{drgRouteDistributionId}'].delete update: x-apievangelist-phrasing: intent: Delete a DRG route distribution effect: destructive questions: - Can I delete a route distribution that an attachment or route table still uses? - How do I remove an unused DRG route distribution? instructions: - text: Delete DRG route distribution {drgRouteDistributionId}. slots: drgRouteDistributionId: path.drgRouteDistributionId - text: Remove the unused route distribution {drgRouteDistributionId}. slots: drgRouteDistributionId: path.drgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions/{drgRouteDistributionId}/actions/addDrgRouteDistributionStatements'].post update: x-apievangelist-phrasing: intent: Add statements to a DRG route distribution effect: write questions: - How do I add match-and-accept statements to a route distribution? - Can I add several distribution statements in one call? instructions: - text: Add statements {statements} to route distribution {drgRouteDistributionId}. slots: statements: requestBody.statements drgRouteDistributionId: path.drgRouteDistributionId - text: Append new distribution statements {statements} to {drgRouteDistributionId}. slots: statements: requestBody.statements drgRouteDistributionId: path.drgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions/{drgRouteDistributionId}/actions/removeDrgRouteDistributionStatements'].post update: x-apievangelist-phrasing: intent: Remove statements from a DRG route distribution effect: destructive questions: - Can I delete specific statements from a route distribution by ID? - How do I drop a rule from a DRG route distribution's map? instructions: - text: Remove statements {statementIds} from route distribution {drgRouteDistributionId}. slots: statementIds: requestBody.statementIds drgRouteDistributionId: path.drgRouteDistributionId - text: Delete distribution statements {statementIds} in {drgRouteDistributionId}. slots: statementIds: requestBody.statementIds drgRouteDistributionId: path.drgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions/{drgRouteDistributionId}/actions/updateDrgRouteDistributionStatements'].post update: x-apievangelist-phrasing: intent: Edit statements in a DRG route distribution effect: write questions: - Can I change the priority or match criteria of existing distribution statements? - How do I modify statements already in a route distribution? instructions: - text: Update statements {statements} in route distribution {drgRouteDistributionId}. slots: statements: requestBody.statements drgRouteDistributionId: path.drgRouteDistributionId - text: Change the existing distribution statements of {drgRouteDistributionId} to {statements}. slots: drgRouteDistributionId: path.drgRouteDistributionId statements: requestBody.statements method: generated generated: '2026-09-26' - target: $.paths['/drgRouteDistributions/{drgRouteDistributionId}/drgRouteDistributionStatements'].get update: x-apievangelist-phrasing: intent: List statements in a DRG route distribution effect: read questions: - What statements make up a given route distribution? - Can I see the match criteria and priorities inside a route distribution? instructions: - text: List the statements in route distribution {drgRouteDistributionId}. slots: drgRouteDistributionId: path.drgRouteDistributionId - text: Show every rule inside DRG route distribution {drgRouteDistributionId}. slots: drgRouteDistributionId: path.drgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables'].get update: x-apievangelist-phrasing: intent: List a DRG's route tables effect: read questions: - What route tables does my dynamic routing gateway have? - Can I find which DRG route tables import from a given route distribution? instructions: - text: List the route tables on DRG {drgId}. slots: drgId: query.drgId - text: List DRG {drgId} route tables that import distribution {importDrgRouteDistributionId}. slots: drgId: query.drgId importDrgRouteDistributionId: query.importDrgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables'].post update: x-apievangelist-phrasing: intent: Create a DRG route table effect: write questions: - How do I add a new route table to a DRG? - Can I turn on ECMP when creating a DRG route table? instructions: - text: Create a route table on DRG {drgId} named {displayName}. slots: drgId: requestBody.drgId displayName: requestBody.displayName - text: Create an ECMP-enabled route table on DRG {drgId} importing distribution {importDrgRouteDistributionId}. slots: drgId: requestBody.drgId importDrgRouteDistributionId: requestBody.importDrgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}'].get update: x-apievangelist-phrasing: intent: Get a DRG route table effect: read questions: - Is ECMP enabled on a particular DRG route table? - Where can I see which import distribution a DRG route table uses? instructions: - text: Get DRG route table {drgRouteTableId}. slots: drgRouteTableId: path.drgRouteTableId - text: Show the settings of DRG route table {drgRouteTableId}. slots: drgRouteTableId: path.drgRouteTableId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}'].put update: x-apievangelist-phrasing: intent: Update a DRG route table effect: write questions: - Can I switch ECMP on or off for an existing DRG route table? - How do I change which distribution a DRG route table imports routes from? instructions: - text: Set ECMP to {isEcmpEnabled} on DRG route table {drgRouteTableId}. slots: isEcmpEnabled: requestBody.isEcmpEnabled drgRouteTableId: path.drgRouteTableId - text: Make DRG route table {drgRouteTableId} import from distribution {importDrgRouteDistributionId}. slots: drgRouteTableId: path.drgRouteTableId importDrgRouteDistributionId: requestBody.importDrgRouteDistributionId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}'].delete update: x-apievangelist-phrasing: intent: Delete a DRG route table effect: destructive questions: - Can I delete a DRG route table while attachments are still assigned to it? - How do I remove a DRG route table I no longer use? instructions: - text: Delete DRG route table {drgRouteTableId}. slots: drgRouteTableId: path.drgRouteTableId - text: Remove the unused DRG route table {drgRouteTableId}. slots: drgRouteTableId: path.drgRouteTableId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}/actions/addDrgRouteRules'].post update: x-apievangelist-phrasing: intent: Add static route rules to a DRG route table effect: write questions: - How do I add a static route to a DRG route table? - Can I add several static route rules to a DRG table at once? instructions: - text: Add static route rules {routeRules} to DRG route table {drgRouteTableId}. slots: routeRules: requestBody.routeRules drgRouteTableId: path.drgRouteTableId - text: Insert static routes {routeRules} into DRG table {drgRouteTableId}. slots: routeRules: requestBody.routeRules drgRouteTableId: path.drgRouteTableId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}/actions/removeDrgRouteRules'].post update: x-apievangelist-phrasing: intent: Remove route rules from a DRG route table effect: destructive questions: - Can I delete specific static routes from a DRG route table by rule ID? - How do I take a static route out of a DRG table? instructions: - text: Remove route rules {routeRuleIds} from DRG route table {drgRouteTableId}. slots: routeRuleIds: requestBody.routeRuleIds drgRouteTableId: path.drgRouteTableId - text: Delete static route rules {routeRuleIds} in DRG table {drgRouteTableId}. slots: routeRuleIds: requestBody.routeRuleIds drgRouteTableId: path.drgRouteTableId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}/actions/removeImportDrgRouteDistribution'].post update: x-apievangelist-phrasing: intent: Stop a DRG route table importing routes effect: destructive questions: - How do I stop a DRG route table from importing dynamic routes? - Can I detach the import distribution from a DRG route table? instructions: - text: Remove the import route distribution from DRG route table {drgRouteTableId}. slots: drgRouteTableId: path.drgRouteTableId - text: Stop importing routes into DRG table {drgRouteTableId}. slots: drgRouteTableId: path.drgRouteTableId method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}/actions/updateDrgRouteRules'].post update: x-apievangelist-phrasing: intent: Edit static route rules in a DRG route table effect: write questions: - Can I change the destination or next hop of an existing DRG static route? - What's the way to modify route rules already in a DRG table? instructions: - text: Update route rules {routeRules} in DRG route table {drgRouteTableId}. slots: routeRules: requestBody.routeRules drgRouteTableId: path.drgRouteTableId - text: Change the existing static routes in DRG table {drgRouteTableId} to {routeRules}. slots: drgRouteTableId: path.drgRouteTableId routeRules: requestBody.routeRules method: generated generated: '2026-09-26' - target: $.paths['/drgRouteTables/{drgRouteTableId}/drgRouteRules'].get update: x-apievangelist-phrasing: intent: List the rules in a DRG route table effect: read questions: - What routes are in my DRG route table? - Can I list only the static or only the dynamic routes in a DRG table? instructions: - text: List the route rules in DRG route table {drgRouteTableId}. slots: drgRouteTableId: path.drgRouteTableId - text: Show {routeType} routes in DRG table {drgRouteTableId}. slots: routeType: query.routeType drgRouteTableId: path.drgRouteTableId method: generated generated: '2026-09-26' - target: $.paths['/drgs'].get update: x-apievangelist-phrasing: intent: List dynamic routing gateways effect: read questions: - Which DRGs exist in this compartment? - Where can I see all my dynamic routing gateways? instructions: - text: List the DRGs in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show every dynamic routing gateway in compartment {compartmentId}. slots: compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/drgs'].post update: x-apievangelist-phrasing: intent: Create a dynamic routing gateway effect: write questions: - How do I create a DRG to connect my VCN to on-premises networks? - What is needed to set up a new dynamic routing gateway? instructions: - text: Create a DRG in compartment {compartmentId}. slots: compartmentId: requestBody.compartmentId - text: Create dynamic routing gateway {displayName} in compartment {compartmentId}. slots: displayName: requestBody.displayName compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/drgs/{drgId}'].get update: x-apievangelist-phrasing: intent: Get a dynamic routing gateway effect: read questions: - Which default route tables does a given DRG use? - Can I look up one DRG by OCID? instructions: - text: Get DRG {drgId}. slots: drgId: path.drgId - text: Show the details of dynamic routing gateway {drgId}. slots: drgId: path.drgId method: generated generated: '2026-09-26' - target: $.paths['/drgs/{drgId}'].put update: x-apievangelist-phrasing: intent: Update a dynamic routing gateway effect: write questions: - Can I change the default route tables a DRG assigns to new attachments? - How do I rename a DRG? instructions: - text: Rename DRG {drgId} to {displayName}. slots: drgId: path.drgId displayName: requestBody.displayName - text: Set the default DRG route tables on {drgId} to {defaultDrgRouteTables}. slots: drgId: path.drgId defaultDrgRouteTables: requestBody.defaultDrgRouteTables method: generated generated: '2026-09-26' - target: $.paths['/drgs/{drgId}'].delete update: x-apievangelist-phrasing: intent: Delete a dynamic routing gateway effect: destructive questions: - Can I delete a DRG that's still attached to a VCN? - How do I tear down a dynamic routing gateway? instructions: - text: Delete DRG {drgId}. slots: drgId: path.drgId - text: Tear down dynamic routing gateway {drgId}. slots: drgId: path.drgId method: generated generated: '2026-09-26' - target: $.paths['/drgs/{drgId}/actions/getAllDrgAttachments'].post update: x-apievangelist-phrasing: intent: Get every attachment on one DRG effect: read questions: - Can I get the complete list of attachments on a single DRG, including cross-tenancy ones? - Is there a way to fetch only the IPSec tunnel attachments of one DRG? instructions: - text: Get all attachments on DRG {drgId}. slots: drgId: path.drgId - text: Get every {attachmentType} attachment on DRG {drgId}. slots: attachmentType: query.attachmentType drgId: path.drgId - text: Show only cross-tenancy attachments on DRG {drgId} when cross-tenancy is {isCrossTenancy}. slots: drgId: path.drgId isCrossTenancy: query.isCrossTenancy method: generated generated: '2026-09-26' - target: $.paths['/drgs/{drgId}/actions/upgrade'].post update: x-apievangelist-phrasing: intent: Upgrade a legacy DRG effect: write questions: - How do I upgrade an older DRG so I can use route tables and distributions? - What changes after a DRG upgrade? instructions: - text: Upgrade DRG {drgId}. slots: drgId: path.drgId - text: Start the upgrade of legacy gateway {drgId} to the new routing model. slots: drgId: path.drgId method: generated generated: '2026-09-26' - target: $.paths['/drgs/{drgId}/actions/upgradeStatus'].get update: x-apievangelist-phrasing: intent: Check a DRG's upgrade progress effect: read questions: - Has my DRG upgrade finished yet? - How many attachments are left to upgrade on a DRG? instructions: - text: Get the upgrade status of DRG {drgId}. slots: drgId: path.drgId - text: Check how far along the upgrade of DRG {drgId} is. slots: drgId: path.drgId method: generated generated: '2026-09-26' - target: $.paths['/drgs/{drgId}/redundancyStatus'].get update: x-apievangelist-phrasing: intent: Check a DRG's redundancy status effect: read questions: - Is my DRG's connectivity to on-premises redundant? - Can I see whether a DRG has a single point of failure? instructions: - text: Get the redundancy status of DRG {drgId}. slots: drgId: path.drgId - text: Check whether DRG {drgId} has redundant connections. slots: drgId: path.drgId method: generated generated: '2026-09-26' - target: $.paths['/fastConnectProviderServices'].get update: x-apievangelist-phrasing: intent: List FastConnect provider service offerings effect: read questions: - Which FastConnect partners and services can I connect through? - Where do I find the provider service ID for a new virtual circuit? instructions: - text: List the FastConnect provider services for compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show available FastConnect partner offerings in compartment {compartmentId}. slots: compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/fastConnectProviderServices/{providerServiceId}'].get update: x-apievangelist-phrasing: intent: Get a FastConnect provider service effect: read questions: - What bandwidth and routing options does one FastConnect provider service support? - Can I look up a single FastConnect partner offering? instructions: - text: Get FastConnect provider service {providerServiceId}. slots: providerServiceId: path.providerServiceId - text: Show the details of FastConnect offering {providerServiceId}. slots: providerServiceId: path.providerServiceId method: generated generated: '2026-09-26' - target: $.paths['/fastConnectProviderServices/{providerServiceId}/providerServiceKeys/{providerServiceKeyName}'].get update: x-apievangelist-phrasing: intent: Validate a FastConnect provider service key effect: read questions: - How do I check that the service key my FastConnect partner gave me is valid? - What bandwidth is tied to a provider service key? instructions: - text: Get service key {providerServiceKeyName} for provider service {providerServiceId}. slots: providerServiceKeyName: path.providerServiceKeyName providerServiceId: path.providerServiceId - text: Validate partner key {providerServiceKeyName} against FastConnect service {providerServiceId}. slots: providerServiceKeyName: path.providerServiceKeyName providerServiceId: path.providerServiceId method: generated generated: '2026-09-26' - target: $.paths['/fastConnectProviderServices/{providerServiceId}/virtualCircuitBandwidthShapes'].get update: x-apievangelist-phrasing: intent: List a FastConnect provider's bandwidth levels effect: read questions: - What bandwidth levels does a specific FastConnect partner offer? - Can I get 10 Gbps virtual circuits through a given provider? instructions: - text: List virtual circuit bandwidth shapes for provider service {providerServiceId}. slots: providerServiceId: path.providerServiceId - text: Show the bandwidth options offered by FastConnect partner service {providerServiceId}. slots: providerServiceId: path.providerServiceId method: generated generated: '2026-09-26' - target: $.paths['/internetGateways'].get update: x-apievangelist-phrasing: intent: List internet gateways effect: read questions: - Which internet gateways exist in my VCN? - Can I list internet gateways across a compartment without naming a VCN? instructions: - text: List the internet gateways in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List internet gateways for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/internetGateways'].post update: x-apievangelist-phrasing: intent: Create an internet gateway for a VCN effect: write questions: - How do I give my VCN access to the internet? - Can I create an internet gateway in a disabled state? instructions: - text: Create an enabled internet gateway for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create internet gateway {displayName} on VCN {vcnId} in compartment {compartmentId} with enabled set to {isEnabled}. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId isEnabled: requestBody.isEnabled method: generated generated: '2026-09-26' - target: $.paths['/internetGateways/{igId}'].get update: x-apievangelist-phrasing: intent: Get an internet gateway effect: read questions: - Is a particular internet gateway enabled? - Can I look up an internet gateway by OCID? instructions: - text: Get internet gateway {igId}. slots: igId: path.igId - text: Show whether internet gateway {igId} is enabled. slots: igId: path.igId method: generated generated: '2026-09-26' - target: $.paths['/internetGateways/{igId}'].put update: x-apievangelist-phrasing: intent: Enable, disable or rename an internet gateway effect: write questions: - How do I temporarily cut internet access by disabling an internet gateway? - Can I attach a route table to an internet gateway? instructions: - text: Disable internet gateway {igId}. slots: igId: path.igId - text: Set enabled to {isEnabled} on internet gateway {igId}. slots: isEnabled: requestBody.isEnabled igId: path.igId - text: Associate route table {routeTableId} with internet gateway {igId}. slots: routeTableId: requestBody.routeTableId igId: path.igId method: generated generated: '2026-09-26' - target: $.paths['/internetGateways/{igId}'].delete update: x-apievangelist-phrasing: intent: Delete an internet gateway effect: destructive questions: - Can I delete an internet gateway that a route table still targets? - What must be removed before deleting an internet gateway? instructions: - text: Delete internet gateway {igId}. slots: igId: path.igId - text: Remove the internet gateway {igId} from its VCN. slots: igId: path.igId method: generated generated: '2026-09-26' - target: $.paths['/internetGateways/{igId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move an internet gateway to another compartment effect: write questions: - Can an internet gateway live in a different compartment from its VCN? - What's the call to move an internet gateway between compartments? instructions: - text: Move internet gateway {igId} into compartment {compartmentId}. slots: igId: path.igId compartmentId: requestBody.compartmentId - text: Relocate internet gateway {igId} to compartment {compartmentId}. slots: igId: path.igId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/ipInventory'].post update: x-apievangelist-phrasing: intent: Search IP address inventory across compartments effect: read questions: - How do I see every IP address in use across my compartments and regions? - Can I search my IP inventory by keyword or only show overlapping VCNs? instructions: - text: List IP inventory for compartments {compartmentList} in regions {regionList}. slots: compartmentList: requestBody.compartmentList regionList: requestBody.regionList - text: Search IP inventory in compartments {compartmentList} and regions {regionList} for {searchKeyword}. slots: compartmentList: requestBody.compartmentList regionList: requestBody.regionList searchKeyword: requestBody.searchKeyword - text: Show only overlapping VCNs in IP inventory for compartments {compartmentList} in {regionList}. slots: compartmentList: requestBody.compartmentList regionList: requestBody.regionList method: generated generated: '2026-09-26' - target: $.paths['/ipInventory/subnets/{subnetId}'].get update: x-apievangelist-phrasing: intent: Get IP inventory for a subnet effect: read questions: - Which IP addresses are assigned in a given subnet? - Can I see the IP inventory of one subnet? instructions: - text: Get the IP inventory of subnet {subnetId}. slots: subnetId: path.subnetId - text: Show every IP address allocated in subnet {subnetId}. slots: subnetId: path.subnetId method: generated generated: '2026-09-26' - target: $.paths['/ipInventory/subnets/{subnetId}/cidrs'].get update: x-apievangelist-phrasing: intent: Get a subnet's CIDR utilization effect: read questions: - How full is my subnet's address range? - What percentage of a subnet's CIDR is already used? instructions: - text: Get CIDR utilization for subnet {subnetId}. slots: subnetId: path.subnetId - text: Check how much address space is left in subnet {subnetId}. slots: subnetId: path.subnetId method: generated generated: '2026-09-26' - target: $.paths['/ipInventory/vcns/{vcnId}/overlaps'].post update: x-apievangelist-phrasing: intent: Find CIDR overlaps for a VCN effect: read questions: - Does my VCN's address range overlap with other VCNs? - Can I check CIDR overlap for a VCN across several regions? instructions: - text: Check CIDR overlaps for VCN {vcnId} in compartments {compartmentList} and regions {regionList}. slots: vcnId: path.vcnId compartmentList: requestBody.compartmentList regionList: requestBody.regionList - text: Find VCNs whose ranges collide with {vcnId} across {regionList} in compartments {compartmentList}. slots: vcnId: path.vcnId regionList: requestBody.regionList compartmentList: requestBody.compartmentList method: generated generated: '2026-09-26' - target: $.paths['/ipinventory/DataRequestId/{dataRequestId}'].get update: x-apievangelist-phrasing: intent: Get IP inventory results by request ID effect: read questions: - How do I retrieve the results of an earlier IP inventory data request? - Can I fetch IP inventory using a data request ID? instructions: - text: Get the IP inventory for data request {dataRequestId}. slots: dataRequestId: path.dataRequestId - text: Fetch the IP inventory results of request {dataRequestId}. slots: dataRequestId: path.dataRequestId method: generated generated: '2026-09-26' - target: $.paths['/ipsecAlgorithms'].get update: x-apievangelist-phrasing: intent: List allowed IKE and IPSec tunnel parameters effect: read questions: - Which encryption and authentication algorithms can I use for IPSec tunnels? - What IKE phase one and phase two parameters are allowed? instructions: - text: List the allowed IKE and IPSec parameters. - text: Show which encryption, hashing and DH groups VPN tunnels support. method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections'].get update: x-apievangelist-phrasing: intent: List Site-to-Site VPN IPSec connections effect: read questions: - What IPSec connections do I have in this compartment? - Can I filter IPSec connections by DRG or CPE? instructions: - text: List the IPSec connections in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List IPSec connections on DRG {drgId} to CPE {cpeId} in compartment {compartmentId}. slots: drgId: query.drgId cpeId: query.cpeId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections'].post update: x-apievangelist-phrasing: intent: Create a Site-to-Site VPN connection effect: write questions: - How do I set up a Site-to-Site VPN between my DRG and on-premises router? - Can I specify static routes when creating an IPSec connection? instructions: - text: Create an IPSec connection between DRG {drgId} and CPE {cpeId} in compartment {compartmentId}. slots: drgId: requestBody.drgId cpeId: requestBody.cpeId compartmentId: requestBody.compartmentId - text: Create a VPN from DRG {drgId} to CPE {cpeId} in compartment {compartmentId} with static routes {staticRoutes}. slots: drgId: requestBody.drgId cpeId: requestBody.cpeId compartmentId: requestBody.compartmentId staticRoutes: requestBody.staticRoutes method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}'].get update: x-apievangelist-phrasing: intent: Get an IPSec connection effect: read questions: - What static routes are set on an IPSec connection? - Can I look up one Site-to-Site VPN connection by OCID? instructions: - text: Get IPSec connection {ipscId}. slots: ipscId: path.ipscId - text: Show the static routes on VPN connection {ipscId}. slots: ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}'].put update: x-apievangelist-phrasing: intent: Update an IPSec connection effect: write questions: - Can I change the static routes on an existing IPSec connection? - How do I change the CPE IKE identifier on a VPN connection? instructions: - text: Set static routes {staticRoutes} on IPSec connection {ipscId}. slots: staticRoutes: requestBody.staticRoutes ipscId: path.ipscId - text: Change the CPE local identifier on IPSec connection {ipscId} to {cpeLocalIdentifier}. slots: ipscId: path.ipscId cpeLocalIdentifier: requestBody.cpeLocalIdentifier method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}'].delete update: x-apievangelist-phrasing: intent: Delete an IPSec connection effect: destructive questions: - How do I remove a Site-to-Site VPN connection entirely? - Is deleting an IPSec connection the same as just disabling the VPN? instructions: - text: Delete IPSec connection {ipscId}. slots: ipscId: path.ipscId - text: Tear down the Site-to-Site VPN connection {ipscId}. slots: ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move an IPSec connection to another compartment effect: write questions: - Can I move a Site-to-Site VPN connection into another compartment? - Does moving an IPSec connection affect its tunnels? instructions: - text: Move IPSec connection {ipscId} into compartment {compartmentId}. slots: ipscId: path.ipscId compartmentId: requestBody.compartmentId - text: Relocate VPN connection {ipscId} to compartment {compartmentId}. slots: ipscId: path.ipscId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/cpeConfigContent'].get update: x-apievangelist-phrasing: intent: Render router config for a whole IPSec connection effect: read questions: - Can I get router configuration that covers every tunnel in one IPSec connection? - Where do I download CPE config content for a VPN connection? instructions: - text: Render CPE configuration content for IPSec connection {ipscId}. slots: ipscId: path.ipscId - text: Generate on-premises router config for all tunnels of VPN {ipscId}. slots: ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/deviceConfig'].get update: x-apievangelist-phrasing: intent: Get tunnel config via the deprecated endpoint effect: read questions: - Is there a legacy endpoint that returns the IPSec connection device config? - Where does the deprecated device-config call for a VPN connection live? instructions: - text: Get the deprecated device configuration for IPSec connection {ipscId}. slots: ipscId: path.ipscId - text: Use the older device-config endpoint for VPN {ipscId}. slots: ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/deviceStatus'].get update: x-apievangelist-phrasing: intent: Get tunnel status via the deprecated endpoint effect: read questions: - Is there a legacy endpoint for IPSec connection device status? - Where does the deprecated tunnel-status call for a VPN connection live? instructions: - text: Get the deprecated device status for IPSec connection {ipscId}. slots: ipscId: path.ipscId - text: Use the older device-status endpoint for VPN {ipscId}. slots: ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels'].get update: x-apievangelist-phrasing: intent: List the tunnels of an IPSec connection effect: read questions: - What tunnels belong to my VPN connection and are they up? - Can I list both tunnels of a Site-to-Site VPN? instructions: - text: List the tunnels of IPSec connection {ipscId}. slots: ipscId: path.ipscId - text: Show every tunnel in VPN connection {ipscId}. slots: ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}'].get update: x-apievangelist-phrasing: intent: Get one IPSec tunnel effect: read questions: - Is a specific VPN tunnel up, and does it use BGP or static routing? - Does fetching a tunnel include its shared secret? instructions: - text: Get tunnel {tunnelId} of IPSec connection {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId - text: Show the routing type and status of tunnel {tunnelId} on VPN {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}'].put update: x-apievangelist-phrasing: intent: Update an IPSec tunnel's settings effect: write questions: - How do I switch a VPN tunnel from static routing to BGP? - Can I change phase one and phase two settings on a tunnel? instructions: - text: Set routing on tunnel {tunnelId} of IPSec connection {ipscId} to {routing}. slots: routing: requestBody.routing tunnelId: path.tunnelId ipscId: path.ipscId - text: Apply BGP session settings {bgpSessionConfig} to tunnel {tunnelId} on VPN {ipscId}. slots: bgpSessionConfig: requestBody.bgpSessionConfig tunnelId: path.tunnelId ipscId: path.ipscId - text: Update phase one config {phaseOneConfig} for tunnel {tunnelId} in connection {ipscId}. slots: phaseOneConfig: requestBody.phaseOneConfig tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/error'].get update: x-apievangelist-phrasing: intent: Get the error on an IPSec tunnel effect: read questions: - Why is my VPN tunnel down, and what error did OCI identify? - Can I see the reported error and suggested fix for a tunnel? instructions: - text: Get the error for tunnel {tunnelId} on IPSec connection {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId - text: Diagnose what's wrong with tunnel {tunnelId} of VPN {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/routes'].get update: x-apievangelist-phrasing: intent: List routes exchanged over an IPSec tunnel effect: read questions: - Which routes is my VPN tunnel advertising to on-premises? - Can I see only the routes received from my on-premises network? instructions: - text: List routes on tunnel {tunnelId} of IPSec connection {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId - text: Show routes advertised by {advertiser} on tunnel {tunnelId} of VPN {ipscId}. slots: advertiser: query.advertiser tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/sharedSecret'].get update: x-apievangelist-phrasing: intent: Get an IPSec tunnel's pre-shared key effect: read questions: - Where can I retrieve the pre-shared key for a VPN tunnel? - Can I read back a tunnel's shared secret after creation? instructions: - text: Get the shared secret for tunnel {tunnelId} of IPSec connection {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId - text: Show me the pre-shared key on tunnel {tunnelId} in VPN {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/sharedSecret'].put update: x-apievangelist-phrasing: intent: Change an IPSec tunnel's pre-shared key effect: write questions: - How do I rotate the pre-shared key on a VPN tunnel? - Will changing a tunnel's shared secret drop the tunnel until my router matches it? instructions: - text: Set the shared secret on tunnel {tunnelId} of IPSec connection {ipscId} to {sharedSecret}. slots: tunnelId: path.tunnelId ipscId: path.ipscId sharedSecret: requestBody.sharedSecret - text: Rotate the pre-shared key for tunnel {tunnelId} in VPN {ipscId} to {sharedSecret}. slots: tunnelId: path.tunnelId ipscId: path.ipscId sharedSecret: requestBody.sharedSecret method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/tunnelDeviceConfig'].get update: x-apievangelist-phrasing: intent: Get saved CPE config answers for a tunnel effect: read questions: - What configuration answers did I provide for a tunnel's CPE? - Can I review the device config answers stored on a VPN tunnel? instructions: - text: Get the CPE configuration answers for tunnel {tunnelId} of IPSec connection {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId - text: Show the saved router answers on tunnel {tunnelId} in VPN {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/tunnelDeviceConfig'].put update: x-apievangelist-phrasing: intent: Set CPE config answers for a tunnel effect: write questions: - How do I answer the device-specific questions for a tunnel's router config? - Can I update the CPE config answers stored on a tunnel? instructions: - text: Save CPE config answers {tunnelCpeDeviceConfig} for tunnel {tunnelId} of IPSec connection {ipscId}. slots: tunnelCpeDeviceConfig: requestBody.tunnelCpeDeviceConfig tunnelId: path.tunnelId ipscId: path.ipscId - text: Update the router answers on tunnel {tunnelId} in VPN {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/tunnelDeviceConfig/content'].get update: x-apievangelist-phrasing: intent: Render router config for one IPSec tunnel effect: read questions: - Can I generate router configuration for just one VPN tunnel? - Where do I get per-tunnel CPE config content to paste into my device? instructions: - text: Render CPE configuration content for tunnel {tunnelId} of IPSec connection {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId - text: Generate the device config for only tunnel {tunnelId} on VPN {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipsecConnections/{ipscId}/tunnels/{tunnelId}/tunnelSecurityAssociations'].get update: x-apievangelist-phrasing: intent: List an IPSec tunnel's security associations effect: read questions: - Which security associations are active on my VPN tunnel? - Can I inspect the IPSec SAs negotiated on a tunnel? instructions: - text: List security associations for tunnel {tunnelId} of IPSec connection {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId - text: Show the negotiated SAs on tunnel {tunnelId} in VPN {ipscId}. slots: tunnelId: path.tunnelId ipscId: path.ipscId method: generated generated: '2026-09-26' - target: $.paths['/ipv6'].get update: x-apievangelist-phrasing: intent: List IPv6 addresses by subnet, VNIC or address effect: read questions: - Which IPv6 addresses are assigned to a VNIC? - Can I look up an IPv6 object by its address within a subnet? instructions: - text: List the IPv6 addresses on VNIC {vnicId}. slots: vnicId: query.vnicId - text: List IPv6s in subnet {subnetId}. slots: subnetId: query.subnetId - text: Find IPv6 {ipAddress} in subnet {subnetId}. slots: ipAddress: query.ipAddress subnetId: query.subnetId method: generated generated: '2026-09-26' - target: $.paths['/ipv6'].post update: x-apievangelist-phrasing: intent: Assign an IPv6 address to a VNIC effect: write questions: - How do I add an IPv6 address to an instance's VNIC? - Can I choose a specific IPv6 address or let OCI pick one? instructions: - text: Create an IPv6 address on VNIC {vnicId}. slots: vnicId: requestBody.vnicId - text: Assign IPv6 {ipAddress} to VNIC {vnicId}. slots: ipAddress: requestBody.ipAddress vnicId: requestBody.vnicId method: generated generated: '2026-09-26' - target: $.paths['/ipv6/actions/bulkCreateIpv6s'].post update: x-apievangelist-phrasing: intent: Create IPv6 addresses in bulk effect: write questions: - Can I create many IPv6 addresses for a VNIC in one request? - What's the fastest way to add a batch of IPv6s to a subnet? instructions: - text: Bulk create IPv6s {bulkCreateIpv6sItem} on VNIC {vnicId}. slots: bulkCreateIpv6sItem: requestBody.bulkCreateIpv6sItem vnicId: requestBody.vnicId - text: Create a batch of IPv6 addresses {bulkCreateIpv6sItem} in subnet {subnetId}. slots: bulkCreateIpv6sItem: requestBody.bulkCreateIpv6sItem subnetId: requestBody.subnetId method: generated generated: '2026-09-26' - target: $.paths['/ipv6/actions/bulkDeleteIpv6s'].post update: x-apievangelist-phrasing: intent: Delete IPv6 addresses in bulk effect: destructive questions: - Can I unassign and delete several IPv6 addresses at once? - How do I clear a batch of IPv6s from a VNIC? instructions: - text: Bulk delete IPv6s {bulkDeleteIpv6sItem} from VNIC {vnicId}. slots: bulkDeleteIpv6sItem: requestBody.bulkDeleteIpv6sItem vnicId: requestBody.vnicId - text: Delete the batch of IPv6 addresses {bulkDeleteIpv6sItem}. slots: bulkDeleteIpv6sItem: requestBody.bulkDeleteIpv6sItem method: generated generated: '2026-09-26' - target: $.paths['/ipv6/actions/bulkDetachIpv6s'].post update: x-apievangelist-phrasing: intent: Detach IPv6 addresses in bulk effect: destructive questions: - Can I detach several IPv6 addresses from a VNIC without deleting them? - What's the bulk call to detach IPv6s? instructions: - text: Bulk detach IPv6s {bulkDetachIpv6sItem} from VNIC {vnicId}. slots: bulkDetachIpv6sItem: requestBody.bulkDetachIpv6sItem vnicId: requestBody.vnicId - text: Detach the batch of IPv6 addresses {bulkDetachIpv6sItem}. slots: bulkDetachIpv6sItem: requestBody.bulkDetachIpv6sItem method: generated generated: '2026-09-26' - target: $.paths['/ipv6/actions/bulkUpdateIpv6s'].post update: x-apievangelist-phrasing: intent: Update IPv6 addresses in bulk effect: write questions: - Can I update several IPv6 addresses on a VNIC at once? - Is there a batch way to change IPv6 settings? instructions: - text: Bulk update IPv6s {bulkUpdateIpv6sItem} on VNIC {vnicId}. slots: bulkUpdateIpv6sItem: requestBody.bulkUpdateIpv6sItem vnicId: requestBody.vnicId - text: Apply changes {bulkUpdateIpv6sItem} to a batch of IPv6 addresses. slots: bulkUpdateIpv6sItem: requestBody.bulkUpdateIpv6sItem method: generated generated: '2026-09-26' - target: $.paths['/ipv6/{ipv6Id}'].get update: x-apievangelist-phrasing: intent: Get an IPv6 address effect: read questions: - Which VNIC and subnet does a given IPv6 belong to? - Can I look up one IPv6 object by OCID? instructions: - text: Get IPv6 {ipv6Id}. slots: ipv6Id: path.ipv6Id - text: Show the details of IPv6 object {ipv6Id}. slots: ipv6Id: path.ipv6Id method: generated generated: '2026-09-26' - target: $.paths['/ipv6/{ipv6Id}'].put update: x-apievangelist-phrasing: intent: Update or move an IPv6 address effect: write questions: - Can I move an IPv6 address to a different VNIC? - How do I allow or block internet access for one IPv6? instructions: - text: Move IPv6 {ipv6Id} to VNIC {vnicId}. slots: ipv6Id: path.ipv6Id vnicId: requestBody.vnicId - text: Set internet access to {isInternetAccessAllowed} on IPv6 {ipv6Id}. slots: isInternetAccessAllowed: requestBody.isInternetAccessAllowed ipv6Id: path.ipv6Id method: generated generated: '2026-09-26' - target: $.paths['/ipv6/{ipv6Id}'].delete update: x-apievangelist-phrasing: intent: Delete an IPv6 address effect: destructive questions: - How do I unassign and delete a single IPv6 address? - Is deleting an IPv6 permanent? instructions: - text: Delete IPv6 {ipv6Id}. slots: ipv6Id: path.ipv6Id - text: Unassign and remove IPv6 address {ipv6Id}. slots: ipv6Id: path.ipv6Id method: generated generated: '2026-09-26' - target: $.paths['/ipv6/{ipv6Id}/actions/detach'].post update: x-apievangelist-phrasing: intent: Detach one IPv6 address from its VNIC effect: destructive questions: - Can I unassign an IPv6 from its VNIC without deleting the IPv6 object? - What's the single-address call to detach an IPv6? instructions: - text: Detach IPv6 {ipv6Id} from its VNIC. slots: ipv6Id: path.ipv6Id - text: Unassign IPv6 {ipv6Id} from the network interface but keep it. slots: ipv6Id: path.ipv6Id method: generated generated: '2026-09-26' - target: $.paths['/localPeeringGateways'].get update: x-apievangelist-phrasing: intent: List local peering gateways effect: read questions: - Which local peering gateways exist in my VCN? - Can I list LPGs across a whole compartment? instructions: - text: List the local peering gateways in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List LPGs for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/localPeeringGateways'].post update: x-apievangelist-phrasing: intent: Create a local peering gateway effect: write questions: - How do I peer two VCNs in the same region? - Can I attach a route table when creating an LPG? instructions: - text: Create a local peering gateway for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create LPG {displayName} on VCN {vcnId} in compartment {compartmentId} using route table {routeTableId}. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId routeTableId: requestBody.routeTableId method: generated generated: '2026-09-26' - target: $.paths['/localPeeringGateways/{localPeeringGatewayId}'].get update: x-apievangelist-phrasing: intent: Get a local peering gateway effect: read questions: - Is my local peering gateway connected to its peer? - Can I look up one LPG by OCID? instructions: - text: Get local peering gateway {localPeeringGatewayId}. slots: localPeeringGatewayId: path.localPeeringGatewayId - text: Show the peering status of LPG {localPeeringGatewayId}. slots: localPeeringGatewayId: path.localPeeringGatewayId method: generated generated: '2026-09-26' - target: $.paths['/localPeeringGateways/{localPeeringGatewayId}'].put update: x-apievangelist-phrasing: intent: Update a local peering gateway effect: write questions: - Can I change the route table used by a local peering gateway? - What's editable on an LPG after it's created? instructions: - text: Associate route table {routeTableId} with LPG {localPeeringGatewayId}. slots: routeTableId: requestBody.routeTableId localPeeringGatewayId: path.localPeeringGatewayId - text: Rename local peering gateway {localPeeringGatewayId} to {displayName}. slots: localPeeringGatewayId: path.localPeeringGatewayId displayName: requestBody.displayName method: generated generated: '2026-09-26' - target: $.paths['/localPeeringGateways/{localPeeringGatewayId}'].delete update: x-apievangelist-phrasing: intent: Delete a local peering gateway effect: destructive questions: - How do I remove a local peering gateway and end the peering? - Is LPG deletion asynchronous? instructions: - text: Delete local peering gateway {localPeeringGatewayId}. slots: localPeeringGatewayId: path.localPeeringGatewayId - text: Remove LPG {localPeeringGatewayId} from its VCN. slots: localPeeringGatewayId: path.localPeeringGatewayId method: generated generated: '2026-09-26' - target: $.paths['/localPeeringGateways/{localPeeringGatewayId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a local peering gateway to another compartment effect: write questions: - Can I move an LPG into a different compartment? - What call relocates a local peering gateway within my tenancy? instructions: - text: Move local peering gateway {localPeeringGatewayId} into compartment {compartmentId}. slots: localPeeringGatewayId: path.localPeeringGatewayId compartmentId: requestBody.compartmentId - text: Relocate LPG {localPeeringGatewayId} to compartment {compartmentId}. slots: localPeeringGatewayId: path.localPeeringGatewayId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/localPeeringGateways/{localPeeringGatewayId}/actions/connect'].post update: x-apievangelist-phrasing: intent: Connect two local peering gateways effect: write questions: - How do I establish peering between two LPGs in the same region? - Who has to run the connect step when peering LPGs across tenancies? instructions: - text: Connect LPG {localPeeringGatewayId} to peer LPG {peerId}. slots: localPeeringGatewayId: path.localPeeringGatewayId peerId: requestBody.peerId - text: Peer local gateway {localPeeringGatewayId} with {peerId}. slots: localPeeringGatewayId: path.localPeeringGatewayId peerId: requestBody.peerId method: generated generated: '2026-09-26' - target: $.paths['/natGateways'].get update: x-apievangelist-phrasing: intent: List NAT gateways effect: read questions: - Which NAT gateways are in my compartment? - Can I narrow NAT gateways down to a single VCN? instructions: - text: List the NAT gateways in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List NAT gateways for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/natGateways'].post update: x-apievangelist-phrasing: intent: Create a NAT gateway for a VCN effect: write questions: - How do I let private instances reach the internet without public IPs? - Can I bring a reserved public IP to a new NAT gateway? instructions: - text: Create a NAT gateway for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create NAT gateway on VCN {vcnId} in compartment {compartmentId} using public IP {publicIpId}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId publicIpId: requestBody.publicIpId method: generated generated: '2026-09-26' - target: $.paths['/natGateways/{natGatewayId}'].get update: x-apievangelist-phrasing: intent: Get a NAT gateway effect: read questions: - Is traffic currently blocked on a particular NAT gateway? - What public IP does a given NAT gateway use? instructions: - text: Get NAT gateway {natGatewayId}. slots: natGatewayId: path.natGatewayId - text: Show the public IP and block status of NAT gateway {natGatewayId}. slots: natGatewayId: path.natGatewayId method: generated generated: '2026-09-26' - target: $.paths['/natGateways/{natGatewayId}'].put update: x-apievangelist-phrasing: intent: Block traffic on or rename a NAT gateway effect: write questions: - How do I temporarily block traffic through a NAT gateway? - Can I attach a route table to a NAT gateway? instructions: - text: Block traffic on NAT gateway {natGatewayId}. slots: natGatewayId: path.natGatewayId - text: Set blockTraffic to {blockTraffic} on NAT gateway {natGatewayId}. slots: blockTraffic: requestBody.blockTraffic natGatewayId: path.natGatewayId - text: Associate route table {routeTableId} with NAT gateway {natGatewayId}. slots: routeTableId: requestBody.routeTableId natGatewayId: path.natGatewayId method: generated generated: '2026-09-26' - target: $.paths['/natGateways/{natGatewayId}'].delete update: x-apievangelist-phrasing: intent: Delete a NAT gateway effect: destructive questions: - Can I delete a NAT gateway that's still a route target? - How do I remove a NAT gateway from my VCN? instructions: - text: Delete NAT gateway {natGatewayId}. slots: natGatewayId: path.natGatewayId - text: Remove NAT gateway {natGatewayId} permanently. slots: natGatewayId: path.natGatewayId method: generated generated: '2026-09-26' - target: $.paths['/natGateways/{natGatewayId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a NAT gateway to another compartment effect: write questions: - Can I move a NAT gateway into another compartment? - Does a NAT gateway keep working after its compartment changes? instructions: - text: Move NAT gateway {natGatewayId} into compartment {compartmentId}. slots: natGatewayId: path.natGatewayId compartmentId: requestBody.compartmentId - text: Relocate NAT gateway {natGatewayId} to compartment {compartmentId}. slots: natGatewayId: path.natGatewayId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups'].get update: x-apievangelist-phrasing: intent: List network security groups effect: read questions: - Which network security groups are defined for my VCN? - Can I list the NSGs associated with a VLAN? instructions: - text: List the network security groups in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List NSGs for VCN {vcnId}. slots: vcnId: query.vcnId - text: List network security groups tied to VLAN {vlanId}. slots: vlanId: query.vlanId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups'].post update: x-apievangelist-phrasing: intent: Create a network security group effect: write questions: - How do I create an NSG to apply firewall rules to specific VNICs? - What do I need to create a network security group? instructions: - text: Create a network security group for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create NSG {displayName} on VCN {vcnId} in compartment {compartmentId}. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}'].get update: x-apievangelist-phrasing: intent: Get a network security group effect: read questions: - Where can I see the basic details of one NSG? - Can I look up a network security group by OCID? instructions: - text: Get network security group {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId - text: Show details for NSG {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}'].put update: x-apievangelist-phrasing: intent: Rename or retag a network security group effect: write questions: - Can I rename a network security group? - Which NSG properties does the update call change? instructions: - text: Rename network security group {networkSecurityGroupId} to {displayName}. slots: networkSecurityGroupId: path.networkSecurityGroupId displayName: requestBody.displayName - text: Update the tags on NSG {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}'].delete update: x-apievangelist-phrasing: intent: Delete a network security group effect: destructive questions: - Can I delete an NSG that still has VNICs in it? - How do I remove an empty network security group? instructions: - text: Delete network security group {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId - text: Remove the empty NSG {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}/actions/addSecurityRules'].post update: x-apievangelist-phrasing: intent: Add security rules to a network security group effect: write questions: - How do I open a port by adding an ingress rule to an NSG? - How many security rules can I add to an NSG in one call? instructions: - text: Add security rules {securityRules} to NSG {networkSecurityGroupId}. slots: securityRules: requestBody.securityRules networkSecurityGroupId: path.networkSecurityGroupId - text: Append firewall rules {securityRules} to network security group {networkSecurityGroupId}. slots: securityRules: requestBody.securityRules networkSecurityGroupId: path.networkSecurityGroupId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a network security group to another compartment effect: write questions: - Can I move an NSG into a different compartment? - What's needed to relocate a network security group? instructions: - text: Move network security group {networkSecurityGroupId} into compartment {compartmentId}. slots: networkSecurityGroupId: path.networkSecurityGroupId compartmentId: requestBody.compartmentId - text: Relocate NSG {networkSecurityGroupId} to compartment {compartmentId}. slots: networkSecurityGroupId: path.networkSecurityGroupId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}/actions/removeSecurityRules'].post update: x-apievangelist-phrasing: intent: Remove security rules from a network security group effect: destructive questions: - How do I close a port by deleting a rule from an NSG? - Can I remove several NSG security rules by their IDs? instructions: - text: Remove security rules {securityRuleIds} from NSG {networkSecurityGroupId}. slots: securityRuleIds: requestBody.securityRuleIds networkSecurityGroupId: path.networkSecurityGroupId - text: Delete firewall rules {securityRuleIds} in network security group {networkSecurityGroupId}. slots: securityRuleIds: requestBody.securityRuleIds networkSecurityGroupId: path.networkSecurityGroupId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}/actions/updateSecurityRules'].post update: x-apievangelist-phrasing: intent: Edit existing rules in a network security group effect: write questions: - Can I change the port range on an existing NSG rule? - What's the way to modify rules already in a network security group? instructions: - text: Update security rules {securityRules} in NSG {networkSecurityGroupId}. slots: securityRules: requestBody.securityRules networkSecurityGroupId: path.networkSecurityGroupId - text: Change the existing firewall rules of network security group {networkSecurityGroupId} to {securityRules}. slots: networkSecurityGroupId: path.networkSecurityGroupId securityRules: requestBody.securityRules method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}/securityRules'].get update: x-apievangelist-phrasing: intent: List a network security group's rules effect: read questions: - What ingress rules does my NSG have? - Can I list only egress rules in a network security group? instructions: - text: List the security rules in NSG {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId - text: Show {direction} rules in network security group {networkSecurityGroupId}. slots: direction: query.direction networkSecurityGroupId: path.networkSecurityGroupId method: generated generated: '2026-09-26' - target: $.paths['/networkSecurityGroups/{networkSecurityGroupId}/vnics'].get update: x-apievangelist-phrasing: intent: List VNICs in a network security group effect: read questions: - Which VNICs are members of a given NSG? - Can I see which instances a network security group applies to? instructions: - text: List the VNICs in NSG {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId - text: Show every network interface in security group {networkSecurityGroupId}. slots: networkSecurityGroupId: path.networkSecurityGroupId method: generated generated: '2026-09-26' - target: $.paths['/networkingTopology'].get update: x-apievangelist-phrasing: intent: Get the region's virtual networking topology effect: read questions: - How can I see a map of all my networking resources in this region? - Can the topology include subcompartments too? instructions: - text: Get the networking topology for compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Get the region topology for compartment {compartmentId} including subcompartments {queryCompartmentSubtree}. slots: compartmentId: query.compartmentId queryCompartmentSubtree: query.queryCompartmentSubtree method: generated generated: '2026-09-26' - target: $.paths['/privateIps'].get update: x-apievangelist-phrasing: intent: List private IPs by subnet, VNIC, VLAN or address effect: read questions: - Which private IPs are assigned to a VNIC? - Can I find the private IP object for a specific address in a subnet? instructions: - text: List the private IPs on VNIC {vnicId}. slots: vnicId: query.vnicId - text: List private IPs in subnet {subnetId}. slots: subnetId: query.subnetId - text: Find private IP {ipAddress} in subnet {subnetId}. slots: ipAddress: query.ipAddress subnetId: query.subnetId method: generated generated: '2026-09-26' - target: $.paths['/privateIps'].post update: x-apievangelist-phrasing: intent: Add a secondary private IP effect: write questions: - How do I add a secondary private IP to a VNIC? - Can I pick the exact private address and hostname? instructions: - text: Create a private IP on VNIC {vnicId}. slots: vnicId: requestBody.vnicId - text: Assign private IP {ipAddress} with hostname {hostnameLabel} to VNIC {vnicId}. slots: ipAddress: requestBody.ipAddress hostnameLabel: requestBody.hostnameLabel vnicId: requestBody.vnicId method: generated generated: '2026-09-26' - target: $.paths['/privateIps/actions/bulkCreatePrivateIps'].post update: x-apievangelist-phrasing: intent: Create secondary private IPs in bulk effect: write questions: - Can I add many secondary private IPv4 addresses in one request? - What's the batch call for creating private IPs on a VNIC? instructions: - text: Bulk create private IPs {bulkCreatePrivateIpItem} on VNIC {vnicId}. slots: bulkCreatePrivateIpItem: requestBody.bulkCreatePrivateIpItem vnicId: requestBody.vnicId - text: Create a batch of secondary IPv4s {bulkCreatePrivateIpItem} in subnet {subnetId}. slots: bulkCreatePrivateIpItem: requestBody.bulkCreatePrivateIpItem subnetId: requestBody.subnetId method: generated generated: '2026-09-26' - target: $.paths['/privateIps/actions/bulkDeletePrivateIps'].post update: x-apievangelist-phrasing: intent: Delete secondary private IPs in bulk effect: destructive questions: - Can I delete a batch of secondary private IPs from a VNIC at once? - How do I clear many private IPv4s in a single call? instructions: - text: Bulk delete private IPs {bulkDeletePrivateIpItem} from VNIC {vnicId}. slots: bulkDeletePrivateIpItem: requestBody.bulkDeletePrivateIpItem vnicId: requestBody.vnicId - text: Delete the batch of secondary IPv4s {bulkDeletePrivateIpItem}. slots: bulkDeletePrivateIpItem: requestBody.bulkDeletePrivateIpItem method: generated generated: '2026-09-26' - target: $.paths['/privateIps/actions/bulkDetachPrivateIps'].post update: x-apievangelist-phrasing: intent: Detach private IPs from a VNIC in bulk effect: destructive questions: - Can I unassign several private IPs from a VNIC together? - Is there a batch detach for private IP addresses? instructions: - text: Bulk detach private IPs {bulkDetachPrivateIpItem} from VNIC {vnicId}. slots: bulkDetachPrivateIpItem: requestBody.bulkDetachPrivateIpItem vnicId: requestBody.vnicId - text: Unassign the batch of private addresses {bulkDetachPrivateIpItem}. slots: bulkDetachPrivateIpItem: requestBody.bulkDetachPrivateIpItem method: generated generated: '2026-09-26' - target: $.paths['/privateIps/actions/bulkUpdatePrivateIps'].post update: x-apievangelist-phrasing: intent: Update secondary private IPs in bulk effect: write questions: - Can I update several secondary private IPs on a VNIC at once? - Is there a batch update for private IPv4 settings? instructions: - text: Bulk update private IPs {bulkUpdatePrivateIpItem} on VNIC {vnicId}. slots: bulkUpdatePrivateIpItem: requestBody.bulkUpdatePrivateIpItem vnicId: requestBody.vnicId - text: Apply changes {bulkUpdatePrivateIpItem} to a batch of secondary IPv4s. slots: bulkUpdatePrivateIpItem: requestBody.bulkUpdatePrivateIpItem method: generated generated: '2026-09-26' - target: $.paths['/privateIps/{privateIpId}'].get update: x-apievangelist-phrasing: intent: Get a private IP effect: read questions: - Which VNIC and subnet does a private IP belong to? - Can I look up one private IP object by OCID? instructions: - text: Get private IP {privateIpId}. slots: privateIpId: path.privateIpId - text: Show the details of private IP object {privateIpId}. slots: privateIpId: path.privateIpId method: generated generated: '2026-09-26' - target: $.paths['/privateIps/{privateIpId}'].put update: x-apievangelist-phrasing: intent: Update or move a private IP effect: write questions: - Can I move a secondary private IP to another VNIC for failover? - How do I change the hostname on a private IP? instructions: - text: Move private IP {privateIpId} to VNIC {vnicId}. slots: privateIpId: path.privateIpId vnicId: requestBody.vnicId - text: Set the hostname of private IP {privateIpId} to {hostnameLabel}. slots: privateIpId: path.privateIpId hostnameLabel: requestBody.hostnameLabel method: generated generated: '2026-09-26' - target: $.paths['/privateIps/{privateIpId}'].delete update: x-apievangelist-phrasing: intent: Delete a private IP effect: destructive questions: - How do I remove a secondary private IP? - Can I delete a VNIC's primary private IP? instructions: - text: Delete private IP {privateIpId}. slots: privateIpId: path.privateIpId - text: Unassign and remove private IP address {privateIpId}. slots: privateIpId: path.privateIpId method: generated generated: '2026-09-26' - target: $.paths['/privateIps/{privateIpId}/actions/detach'].post update: x-apievangelist-phrasing: intent: Detach one private IP from its VNIC effect: destructive questions: - Can I unassign a private IP from its VNIC without deleting it? - What's the single-address call to detach a private IP? instructions: - text: Detach private IP {privateIpId} from its VNIC. slots: privateIpId: path.privateIpId - text: Unassign private address {privateIpId} from the network interface but keep it. slots: privateIpId: path.privateIpId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools'].get update: x-apievangelist-phrasing: intent: List public IP pools effect: read questions: - What public IP pools have I created from my BYOIP ranges? - Can I list only the pools built from a specific BYOIP range? instructions: - text: List the public IP pools in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List public IP pools from BYOIP range {byoipRangeId} in compartment {compartmentId}. slots: byoipRangeId: query.byoipRangeId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools'].post update: x-apievangelist-phrasing: intent: Create a public IP pool effect: write questions: - How do I create a pool to hand out IPs from my own address range? - What's needed to create a public IP pool? instructions: - text: Create a public IP pool in compartment {compartmentId}. slots: compartmentId: requestBody.compartmentId - text: Set up an address pool called {displayName} under compartment {compartmentId}. slots: displayName: requestBody.displayName compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools/{publicIpPoolId}'].get update: x-apievangelist-phrasing: intent: Get a public IP pool effect: read questions: - Which CIDR blocks are in a given public IP pool? - Can I look up one public IP pool by OCID? instructions: - text: Get public IP pool {publicIpPoolId}. slots: publicIpPoolId: path.publicIpPoolId - text: Show the CIDR blocks in pool {publicIpPoolId}. slots: publicIpPoolId: path.publicIpPoolId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools/{publicIpPoolId}'].put update: x-apievangelist-phrasing: intent: Rename a public IP pool effect: write questions: - Can I rename a public IP pool? - What can be updated on a public IP pool? instructions: - text: Rename public IP pool {publicIpPoolId} to {displayName}. slots: publicIpPoolId: path.publicIpPoolId displayName: requestBody.displayName - text: Update the tags on public IP pool {publicIpPoolId}. slots: publicIpPoolId: path.publicIpPoolId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools/{publicIpPoolId}'].delete update: x-apievangelist-phrasing: intent: Delete a public IP pool effect: destructive questions: - Can I delete a public IP pool that still has allocated addresses? - How do I remove an unused public IP pool? instructions: - text: Delete public IP pool {publicIpPoolId}. slots: publicIpPoolId: path.publicIpPoolId - text: Remove the empty IP pool {publicIpPoolId}. slots: publicIpPoolId: path.publicIpPoolId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools/{publicIpPoolId}/actions/addCapacity'].post update: x-apievangelist-phrasing: intent: Add a CIDR block to a public IP pool effect: write questions: - How do I add part of my BYOIP range to a public IP pool? - Can a CIDR I add to a pool overlap with another pool? instructions: - text: Add CIDR {cidrBlock} from BYOIP range {byoipRangeId} to pool {publicIpPoolId}. slots: cidrBlock: requestBody.cidrBlock byoipRangeId: requestBody.byoipRangeId publicIpPoolId: path.publicIpPoolId - text: Grow public IP pool {publicIpPoolId} with block {cidrBlock} of range {byoipRangeId}. slots: publicIpPoolId: path.publicIpPoolId cidrBlock: requestBody.cidrBlock byoipRangeId: requestBody.byoipRangeId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools/{publicIpPoolId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a public IP pool to another compartment effect: write questions: - Can I move a public IP pool into a different compartment? - What's the call to relocate an IP pool? instructions: - text: Move public IP pool {publicIpPoolId} into compartment {compartmentId}. slots: publicIpPoolId: path.publicIpPoolId compartmentId: requestBody.compartmentId - text: Relocate IP pool {publicIpPoolId} to compartment {compartmentId}. slots: publicIpPoolId: path.publicIpPoolId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/publicIpPools/{publicIpPoolId}/actions/removeCapacity'].post update: x-apievangelist-phrasing: intent: Remove a CIDR block from a public IP pool effect: destructive questions: - How do I shrink a public IP pool by removing a CIDR block? - Can I take a block out of a pool while addresses in it are in use? instructions: - text: Remove CIDR {cidrBlock} from public IP pool {publicIpPoolId}. slots: cidrBlock: requestBody.cidrBlock publicIpPoolId: path.publicIpPoolId - text: Shrink pool {publicIpPoolId} by dropping block {cidrBlock}. slots: publicIpPoolId: path.publicIpPoolId cidrBlock: requestBody.cidrBlock method: generated generated: '2026-09-26' - target: $.paths['/publicIps'].get update: x-apievangelist-phrasing: intent: List public IPs in a compartment effect: read questions: - Which reserved public IPs do I have in this compartment? - Can I list ephemeral public IPs for one availability domain? instructions: - text: List {scope} public IPs in compartment {compartmentId}. slots: scope: query.scope compartmentId: query.compartmentId - text: List {lifetime} public IPs with scope {scope} in compartment {compartmentId}. slots: lifetime: query.lifetime scope: query.scope compartmentId: query.compartmentId - text: List public IPs from pool {publicIpPoolId} with scope {scope} in compartment {compartmentId}. slots: publicIpPoolId: query.publicIpPoolId scope: query.scope compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/publicIps'].post update: x-apievangelist-phrasing: intent: Create a reserved or ephemeral public IP effect: write questions: - How do I reserve a public IP address in OCI? - Can I create a public IP from my own BYOIP pool and assign it to a private IP? instructions: - text: Allocate a {lifetime} public IP address in compartment {compartmentId}. slots: lifetime: requestBody.lifetime compartmentId: requestBody.compartmentId - text: Create a {lifetime} public IP from pool {publicIpPoolId} in compartment {compartmentId} for private IP {privateIpId}. slots: lifetime: requestBody.lifetime publicIpPoolId: requestBody.publicIpPoolId compartmentId: requestBody.compartmentId privateIpId: requestBody.privateIpId method: generated generated: '2026-09-26' - target: $.paths['/publicIps/actions/getByIpAddress'].post update: x-apievangelist-phrasing: intent: Look up a public IP by its address effect: read questions: - How do I find the OCI object behind a public address like 203.0.113.2? - Can I look up a public IP by the address itself instead of its OCID? instructions: - text: Get the public IP object for address {ipAddress}. slots: ipAddress: requestBody.ipAddress - text: Find which public IP resource owns {ipAddress}. slots: ipAddress: requestBody.ipAddress method: generated generated: '2026-09-26' - target: $.paths['/publicIps/actions/getByPrivateIpId'].post update: x-apievangelist-phrasing: intent: Look up the public IP on a private IP effect: read questions: - Which public IP is mapped to a given private IP? - Can I check whether a private IP has a public IP assigned? instructions: - text: Get the public IP assigned to private IP {privateIpId}. slots: privateIpId: requestBody.privateIpId - text: Find the public address mapped to private IP {privateIpId}. slots: privateIpId: requestBody.privateIpId method: generated generated: '2026-09-26' - target: $.paths['/publicIps/{publicIpId}'].get update: x-apievangelist-phrasing: intent: Get a public IP by OCID effect: read questions: - Is a given public IP reserved or ephemeral? - Can I look up a public IP object by its OCID? instructions: - text: Get public IP {publicIpId}. slots: publicIpId: path.publicIpId - text: Show the lifetime and assignment of public IP {publicIpId}. slots: publicIpId: path.publicIpId method: generated generated: '2026-09-26' - target: $.paths['/publicIps/{publicIpId}'].put update: x-apievangelist-phrasing: intent: Reassign or rename a public IP effect: write questions: - How do I move a reserved public IP to a different private IP? - Can I unassign a reserved public IP without deleting it? instructions: - text: Assign public IP {publicIpId} to private IP {privateIpId}. slots: publicIpId: path.publicIpId privateIpId: requestBody.privateIpId - text: Rename public IP {publicIpId} to {displayName}. slots: publicIpId: path.publicIpId displayName: requestBody.displayName method: generated generated: '2026-09-26' - target: $.paths['/publicIps/{publicIpId}'].delete update: x-apievangelist-phrasing: intent: Delete a public IP effect: destructive questions: - How do I release a reserved public IP? - Does deleting a public IP work for both ephemeral and reserved addresses? instructions: - text: Delete public IP {publicIpId}. slots: publicIpId: path.publicIpId - text: Release the public IP address {publicIpId}. slots: publicIpId: path.publicIpId method: generated generated: '2026-09-26' - target: $.paths['/publicIps/{publicIpId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a public IP to another compartment effect: write questions: - Can I move a reserved public IP into another compartment? - Which public IPs can change compartments? instructions: - text: Move public IP {publicIpId} into compartment {compartmentId}. slots: publicIpId: path.publicIpId compartmentId: requestBody.compartmentId - text: Relocate reserved address {publicIpId} to compartment {compartmentId}. slots: publicIpId: path.publicIpId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/remotePeeringConnections'].get update: x-apievangelist-phrasing: intent: List remote peering connections effect: read questions: - Which remote peering connections exist on my DRG? - Can I list RPCs across a whole compartment? instructions: - text: List the remote peering connections in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List RPCs on DRG {drgId} in compartment {compartmentId}. slots: drgId: query.drgId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/remotePeeringConnections'].post update: x-apievangelist-phrasing: intent: Create a remote peering connection effect: write questions: - How do I peer VCNs across two different regions? - What does an RPC need to be created on a DRG? instructions: - text: Create a remote peering connection on DRG {drgId} in compartment {compartmentId}. slots: drgId: requestBody.drgId compartmentId: requestBody.compartmentId - text: Create RPC {displayName} for DRG {drgId} in compartment {compartmentId}. slots: displayName: requestBody.displayName drgId: requestBody.drgId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/remotePeeringConnections/{remotePeeringConnectionId}'].get update: x-apievangelist-phrasing: intent: Get a remote peering connection effect: read questions: - Is my cross-region peering connection established? - Can I look up one RPC by OCID? instructions: - text: Get remote peering connection {remotePeeringConnectionId}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId - text: Show the peering status of RPC {remotePeeringConnectionId}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId method: generated generated: '2026-09-26' - target: $.paths['/remotePeeringConnections/{remotePeeringConnectionId}'].put update: x-apievangelist-phrasing: intent: Rename a remote peering connection effect: write questions: - Can I rename a remote peering connection? - What's editable on an RPC? instructions: - text: Rename remote peering connection {remotePeeringConnectionId} to {displayName}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId displayName: requestBody.displayName - text: Update the tags on RPC {remotePeeringConnectionId}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId method: generated generated: '2026-09-26' - target: $.paths['/remotePeeringConnections/{remotePeeringConnectionId}'].delete update: x-apievangelist-phrasing: intent: Delete a remote peering connection effect: destructive questions: - How do I end a cross-region VCN peering? - Is deleting an RPC asynchronous? instructions: - text: Delete remote peering connection {remotePeeringConnectionId}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId - text: Tear down RPC {remotePeeringConnectionId}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId method: generated generated: '2026-09-26' - target: $.paths['/remotePeeringConnections/{remotePeeringConnectionId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a remote peering connection to another compartment effect: write questions: - Can I move an RPC into a different compartment? - What's the call to relocate a remote peering connection? instructions: - text: Move remote peering connection {remotePeeringConnectionId} into compartment {compartmentId}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId compartmentId: requestBody.compartmentId - text: Relocate RPC {remotePeeringConnectionId} to compartment {compartmentId}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/remotePeeringConnections/{remotePeeringConnectionId}/actions/connect'].post update: x-apievangelist-phrasing: intent: Connect two remote peering connections effect: write questions: - How do I link my RPC to one in another region? - Which region name and peer ID do I need to connect RPCs? instructions: - text: Connect RPC {remotePeeringConnectionId} to peer {peerId} in region {peerRegionName}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId peerId: requestBody.peerId peerRegionName: requestBody.peerRegionName - text: Peer remote connection {remotePeeringConnectionId} with {peerId} over in {peerRegionName}. slots: remotePeeringConnectionId: path.remotePeeringConnectionId peerId: requestBody.peerId peerRegionName: requestBody.peerRegionName method: generated generated: '2026-09-26' - target: $.paths['/routeTables'].get update: x-apievangelist-phrasing: intent: List VCN route tables effect: read questions: - Which route tables exist in my VCN? - Can I list route tables across a compartment without naming a VCN? instructions: - text: List the route tables in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List route tables for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/routeTables'].post update: x-apievangelist-phrasing: intent: Create a VCN route table effect: write questions: - How do I create a route table that sends traffic to a gateway? - Does a new route table need at least one route rule? instructions: - text: Create a route table for VCN {vcnId} in compartment {compartmentId} with rules {routeRules}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId routeRules: requestBody.routeRules - text: Create route table {displayName} on VCN {vcnId} in compartment {compartmentId} using route rules {routeRules}. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId routeRules: requestBody.routeRules method: generated generated: '2026-09-26' - target: $.paths['/routeTables/{rtId}'].get update: x-apievangelist-phrasing: intent: Get a VCN route table effect: read questions: - What route rules are in a given VCN route table? - Can I look up one route table by OCID? instructions: - text: Get route table {rtId}. slots: rtId: path.rtId - text: Show the route rules in table {rtId}. slots: rtId: path.rtId method: generated generated: '2026-09-26' - target: $.paths['/routeTables/{rtId}'].put update: x-apievangelist-phrasing: intent: Replace a VCN route table's rules effect: write questions: - How do I add a route to an existing VCN route table? - Does updating route rules replace the whole list? instructions: - text: Replace the rules in route table {rtId} with {routeRules}. slots: rtId: path.rtId routeRules: requestBody.routeRules - text: Rename route table {rtId} to {displayName}. slots: rtId: path.rtId displayName: requestBody.displayName method: generated generated: '2026-09-26' - target: $.paths['/routeTables/{rtId}'].delete update: x-apievangelist-phrasing: intent: Delete a VCN route table effect: destructive questions: - Can I delete a route table that's associated with a subnet? - Is it possible to delete a VCN's default route table? instructions: - text: Delete route table {rtId}. slots: rtId: path.rtId - text: Remove the unused VCN route table {rtId}. slots: rtId: path.rtId method: generated generated: '2026-09-26' - target: $.paths['/routeTables/{rtId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a route table to another compartment effect: write questions: - Can a VCN route table be moved to another compartment? - What call relocates a route table? instructions: - text: Move route table {rtId} into compartment {compartmentId}. slots: rtId: path.rtId compartmentId: requestBody.compartmentId - text: Relocate VCN route table {rtId} to compartment {compartmentId}. slots: rtId: path.rtId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/securityLists'].get update: x-apievangelist-phrasing: intent: List security lists effect: read questions: - Which security lists are in my VCN? - Can I filter security lists by name? instructions: - text: List the security lists in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List security lists for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/securityLists'].post update: x-apievangelist-phrasing: intent: Create a security list effect: write questions: - How do I create subnet-level firewall rules with a security list? - Do I have to give both ingress and egress rules when creating a security list? instructions: - text: Create a security list for VCN {vcnId} in compartment {compartmentId} with ingress {ingressSecurityRules} and egress {egressSecurityRules}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId ingressSecurityRules: requestBody.ingressSecurityRules egressSecurityRules: requestBody.egressSecurityRules - text: Create security list {displayName} on VCN {vcnId} in {compartmentId}, allowing {ingressSecurityRules} in and {egressSecurityRules} out. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId ingressSecurityRules: requestBody.ingressSecurityRules egressSecurityRules: requestBody.egressSecurityRules method: generated generated: '2026-09-26' - target: $.paths['/securityLists/{securityListId}'].get update: x-apievangelist-phrasing: intent: Get a security list effect: read questions: - What ingress and egress rules are in a given security list? - Can I look up one security list by OCID? instructions: - text: Get security list {securityListId}. slots: securityListId: path.securityListId - text: Show the rules in security list {securityListId}. slots: securityListId: path.securityListId method: generated generated: '2026-09-26' - target: $.paths['/securityLists/{securityListId}'].put update: x-apievangelist-phrasing: intent: Replace a security list's rules effect: write questions: - How do I open a port in a subnet's security list? - Does updating a security list overwrite all its existing rules? instructions: - text: Replace the ingress rules in security list {securityListId} with {ingressSecurityRules}. slots: securityListId: path.securityListId ingressSecurityRules: requestBody.ingressSecurityRules - text: Set the egress rules of security list {securityListId} to {egressSecurityRules}. slots: securityListId: path.securityListId egressSecurityRules: requestBody.egressSecurityRules method: generated generated: '2026-09-26' - target: $.paths['/securityLists/{securityListId}'].delete update: x-apievangelist-phrasing: intent: Delete a security list effect: destructive questions: - Can I delete a security list still associated with a subnet? - Is a VCN's default security list deletable? instructions: - text: Delete security list {securityListId}. slots: securityListId: path.securityListId - text: Remove the unused security list {securityListId}. slots: securityListId: path.securityListId method: generated generated: '2026-09-26' - target: $.paths['/securityLists/{securityListId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a security list to another compartment effect: write questions: - Can a security list be moved to a different compartment? - What call relocates a security list? instructions: - text: Move security list {securityListId} into compartment {compartmentId}. slots: securityListId: path.securityListId compartmentId: requestBody.compartmentId - text: Relocate security list {securityListId} to compartment {compartmentId}. slots: securityListId: path.securityListId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways'].get update: x-apievangelist-phrasing: intent: List service gateways effect: read questions: - Which service gateways exist in my compartment? - Can I narrow service gateways down to one VCN? instructions: - text: List the service gateways in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List service gateways for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways'].post update: x-apievangelist-phrasing: intent: Create a service gateway for private OCI service access effect: write questions: - How do I reach Object Storage from a VCN without going over the internet? - Which services can I enable when creating a service gateway? instructions: - text: Create a service gateway on VCN {vcnId} in compartment {compartmentId} for services {services}. slots: vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId services: requestBody.services - text: Create service gateway {displayName} for VCN {vcnId} in {compartmentId} enabling {services}. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId services: requestBody.services method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways/{serviceGatewayId}'].get update: x-apievangelist-phrasing: intent: Get a service gateway effect: read questions: - Which OCI services are enabled on a given service gateway? - Is traffic blocked on my service gateway? instructions: - text: Get service gateway {serviceGatewayId}. slots: serviceGatewayId: path.serviceGatewayId - text: Show the enabled services on service gateway {serviceGatewayId}. slots: serviceGatewayId: path.serviceGatewayId method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways/{serviceGatewayId}'].put update: x-apievangelist-phrasing: intent: Update a service gateway effect: write questions: - Does updating a service gateway overwrite its whole list of services? - Can I block traffic through a service gateway temporarily? instructions: - text: Replace the services on service gateway {serviceGatewayId} with {services}. slots: serviceGatewayId: path.serviceGatewayId services: requestBody.services - text: Set blockTraffic to {blockTraffic} on service gateway {serviceGatewayId}. slots: blockTraffic: requestBody.blockTraffic serviceGatewayId: path.serviceGatewayId method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways/{serviceGatewayId}'].delete update: x-apievangelist-phrasing: intent: Delete a service gateway effect: destructive questions: - Can I delete a service gateway that a route table still targets? - How do I remove a service gateway from my VCN? instructions: - text: Delete service gateway {serviceGatewayId}. slots: serviceGatewayId: path.serviceGatewayId - text: Remove service gateway {serviceGatewayId} permanently. slots: serviceGatewayId: path.serviceGatewayId method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways/{serviceGatewayId}/actions/attachService'].post update: x-apievangelist-phrasing: intent: Enable one more service on a service gateway effect: write questions: - How do I add a single OCI service to an existing service gateway? - Can I enable a service on a gateway without resending the full list? instructions: - text: Attach service {serviceId} to service gateway {serviceGatewayId}. slots: serviceId: requestBody.serviceId serviceGatewayId: path.serviceGatewayId - text: Enable service {serviceId} on gateway {serviceGatewayId}. slots: serviceId: requestBody.serviceId serviceGatewayId: path.serviceGatewayId method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways/{serviceGatewayId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a service gateway to another compartment effect: write questions: - Can I move a service gateway into another compartment? - What call relocates a service gateway? instructions: - text: Move service gateway {serviceGatewayId} into compartment {compartmentId}. slots: serviceGatewayId: path.serviceGatewayId compartmentId: requestBody.compartmentId - text: Relocate service gateway {serviceGatewayId} to compartment {compartmentId}. slots: serviceGatewayId: path.serviceGatewayId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/serviceGateways/{serviceGatewayId}/actions/detachService'].post update: x-apievangelist-phrasing: intent: Disable one service on a service gateway effect: destructive questions: - How do I remove a single OCI service from a service gateway? - Can I disable one service without touching the others on the gateway? instructions: - text: Detach service {serviceId} from service gateway {serviceGatewayId}. slots: serviceId: requestBody.serviceId serviceGatewayId: path.serviceGatewayId - text: Disable service {serviceId} on gateway {serviceGatewayId}. slots: serviceId: requestBody.serviceId serviceGatewayId: path.serviceGatewayId method: generated generated: '2026-09-26' - target: $.paths['/services'].get update: x-apievangelist-phrasing: intent: List services available to service gateways effect: read questions: - Which OCI services can I enable through a service gateway? - What service IDs are available in this region for a service gateway? instructions: - text: List the services I can enable on a service gateway. - text: Show every OCI service reachable via service gateways in this region. method: generated generated: '2026-09-26' - target: $.paths['/services/{serviceId}'].get update: x-apievangelist-phrasing: intent: Get a service gateway service effect: read questions: - What CIDR label and description does a given OCI Service object have? - Can I look up one Service object by OCID? instructions: - text: Get service {serviceId}. slots: serviceId: path.serviceId - text: Show the details of OCI Service object {serviceId}. slots: serviceId: path.serviceId method: generated generated: '2026-09-26' - target: $.paths['/subnetTopology'].get update: x-apievangelist-phrasing: intent: Get the network topology around a subnet effect: read questions: - Can I see a map of what a specific subnet connects to? - Does subnet topology include resources in child compartments? instructions: - text: Get the topology for subnet {subnetId} in compartment {compartmentId}. slots: subnetId: query.subnetId compartmentId: query.compartmentId - text: Map subnet {subnetId} in compartment {compartmentId} with subcompartments {queryCompartmentSubtree}. slots: subnetId: query.subnetId compartmentId: query.compartmentId queryCompartmentSubtree: query.queryCompartmentSubtree method: generated generated: '2026-09-26' - target: $.paths['/subnets'].get update: x-apievangelist-phrasing: intent: List subnets effect: read questions: - Which subnets are in my VCN? - Can I list subnets across a compartment without naming a VCN? instructions: - text: List the subnets in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List subnets for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/subnets'].post update: x-apievangelist-phrasing: intent: Create a subnet in a VCN effect: write questions: - How do I create a private subnet that blocks public IPs on VNICs? - Can I make a subnet regional instead of tied to one availability domain? instructions: - text: Create a subnet with CIDR {cidrBlock} in VCN {vcnId} and compartment {compartmentId}. slots: cidrBlock: requestBody.cidrBlock vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create subnet {displayName} on VCN {vcnId} in {compartmentId} using route table {routeTableId} and security lists {securityListIds}. slots: displayName: requestBody.displayName vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId routeTableId: requestBody.routeTableId securityListIds: requestBody.securityListIds - text: Create a subnet in availability domain {availabilityDomain} of VCN {vcnId} in compartment {compartmentId}. slots: availabilityDomain: requestBody.availabilityDomain vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}'].get update: x-apievangelist-phrasing: intent: Get a subnet effect: read questions: - What CIDR, route table and security lists does a subnet use? - Can I look up one subnet by OCID? instructions: - text: Get subnet {subnetId}. slots: subnetId: path.subnetId - text: Show the configuration of subnet {subnetId}. slots: subnetId: path.subnetId method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}'].put update: x-apievangelist-phrasing: intent: Update a subnet's routing and security effect: write questions: - How do I switch a subnet to a different route table? - Can I change which security lists or DHCP options a subnet uses? instructions: - text: Point subnet {subnetId} at route table {routeTableId}. slots: subnetId: path.subnetId routeTableId: requestBody.routeTableId - text: Set the security lists on subnet {subnetId} to {securityListIds}. slots: subnetId: path.subnetId securityListIds: requestBody.securityListIds - text: Use DHCP options {dhcpOptionsId} for subnet {subnetId}. slots: dhcpOptionsId: requestBody.dhcpOptionsId subnetId: path.subnetId method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}'].delete update: x-apievangelist-phrasing: intent: Delete a subnet effect: destructive questions: - Can I delete a subnet that still has instances in it? - How do I remove an empty subnet? instructions: - text: Delete subnet {subnetId}. slots: subnetId: path.subnetId - text: Remove the empty subnet {subnetId}. slots: subnetId: path.subnetId method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}/actions/addIpv4Cidr'].post update: x-apievangelist-phrasing: intent: Add an IPv4 prefix to a subnet effect: write questions: - Can a subnet have more than one IPv4 CIDR block? - How do I grow a subnet by adding another IPv4 range? instructions: - text: Add IPv4 CIDR {ipv4CidrBlock} to subnet {subnetId}. slots: ipv4CidrBlock: requestBody.ipv4CidrBlock subnetId: path.subnetId - text: Extend subnet {subnetId} with IPv4 prefix {ipv4CidrBlock}. slots: subnetId: path.subnetId ipv4CidrBlock: requestBody.ipv4CidrBlock method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}/actions/addIpv6Cidr'].post update: x-apievangelist-phrasing: intent: Add an IPv6 prefix to a subnet effect: write questions: - How do I enable IPv6 on an existing subnet? - Can I give a subnet an additional IPv6 prefix? instructions: - text: Add IPv6 CIDR {ipv6CidrBlock} to subnet {subnetId}. slots: ipv6CidrBlock: requestBody.ipv6CidrBlock subnetId: path.subnetId - text: Extend subnet {subnetId} with IPv6 prefix {ipv6CidrBlock}. slots: subnetId: path.subnetId ipv6CidrBlock: requestBody.ipv6CidrBlock method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a subnet to another compartment effect: write questions: - Can a subnet live in a different compartment from its VCN? - What call relocates a subnet? instructions: - text: Move subnet {subnetId} into compartment {compartmentId}. slots: subnetId: path.subnetId compartmentId: requestBody.compartmentId - text: Relocate subnet {subnetId} to compartment {compartmentId}. slots: subnetId: path.subnetId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}/actions/modifyIpv4Cidr'].post update: x-apievangelist-phrasing: intent: Resize a subnet's IPv4 CIDR block effect: write questions: - Can I resize a subnet's IPv4 range after it's created? - What rules does a new subnet IPv4 CIDR have to meet? instructions: - text: Change subnet {subnetId} IPv4 CIDR from {ipv4CidrBlock} to {updatedIpv4CidrBlock}. slots: subnetId: path.subnetId ipv4CidrBlock: requestBody.ipv4CidrBlock updatedIpv4CidrBlock: requestBody.updatedIpv4CidrBlock - text: Resize range {ipv4CidrBlock} on subnet {subnetId} to {updatedIpv4CidrBlock}. slots: ipv4CidrBlock: requestBody.ipv4CidrBlock subnetId: path.subnetId updatedIpv4CidrBlock: requestBody.updatedIpv4CidrBlock method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}/actions/removeIpv4Cidr'].post update: x-apievangelist-phrasing: intent: Remove an IPv4 prefix from a subnet effect: destructive questions: - How do I drop an extra IPv4 range from a subnet? - Can I remove an IPv4 CIDR a subnet no longer needs? instructions: - text: Remove IPv4 CIDR {ipv4CidrBlock} from subnet {subnetId}. slots: ipv4CidrBlock: requestBody.ipv4CidrBlock subnetId: path.subnetId - text: Take IPv4 prefix {ipv4CidrBlock} off subnet {subnetId}. slots: ipv4CidrBlock: requestBody.ipv4CidrBlock subnetId: path.subnetId method: generated generated: '2026-09-26' - target: $.paths['/subnets/{subnetId}/actions/removeIpv6Cidr'].post update: x-apievangelist-phrasing: intent: Remove an IPv6 prefix from a subnet effect: destructive questions: - How do I drop an IPv6 prefix from a subnet? - Must a subnet keep at least one IPv6 CIDR? instructions: - text: Remove IPv6 CIDR {ipv6CidrBlock} from subnet {subnetId}. slots: ipv6CidrBlock: requestBody.ipv6CidrBlock subnetId: path.subnetId - text: Take IPv6 prefix {ipv6CidrBlock} off subnet {subnetId}. slots: ipv6CidrBlock: requestBody.ipv6CidrBlock subnetId: path.subnetId method: generated generated: '2026-09-26' - target: $.paths['/vcnTopology'].get update: x-apievangelist-phrasing: intent: Get the network topology of a VCN effect: read questions: - Can I see a diagram-style view of everything connected to one VCN? - Does VCN topology include resources from subcompartments? instructions: - text: Get the topology for VCN {vcnId} in compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId - text: Map VCN {vcnId} in compartment {compartmentId} with subcompartments {queryCompartmentSubtree}. slots: vcnId: query.vcnId compartmentId: query.compartmentId queryCompartmentSubtree: query.queryCompartmentSubtree method: generated generated: '2026-09-26' - target: $.paths['/vcns'].get update: x-apievangelist-phrasing: intent: List virtual cloud networks effect: read questions: - What VCNs do I have in this compartment? - Can I filter VCNs by display name or state? instructions: - text: List the VCNs in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Find VCNs named {displayName} in compartment {compartmentId}. slots: displayName: query.displayName compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/vcns'].post update: x-apievangelist-phrasing: intent: Create a virtual cloud network effect: write questions: - How do I create a new VCN in Oracle Cloud? - Can I enable IPv6 or give multiple CIDR blocks when creating a VCN? instructions: - text: Create a VCN with CIDR {cidrBlock} in compartment {compartmentId}. slots: cidrBlock: requestBody.cidrBlock compartmentId: requestBody.compartmentId - text: Create VCN {displayName} in {compartmentId} with CIDR blocks {cidrBlocks} and DNS label {dnsLabel}. slots: displayName: requestBody.displayName compartmentId: requestBody.compartmentId cidrBlocks: requestBody.cidrBlocks dnsLabel: requestBody.dnsLabel - text: Create an IPv6-enabled VCN in compartment {compartmentId}. slots: compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}'].get update: x-apievangelist-phrasing: intent: Get a virtual cloud network effect: read questions: - What CIDR blocks and default resources does a VCN have? - Can I look up one VCN by OCID? instructions: - text: Get VCN {vcnId}. slots: vcnId: path.vcnId - text: Show the configuration of virtual cloud network {vcnId}. slots: vcnId: path.vcnId method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}'].put update: x-apievangelist-phrasing: intent: Update a virtual cloud network effect: write questions: - Can I rename a VCN or turn on encryption after creating it? - Which VCN settings can be changed later? instructions: - text: Rename VCN {vcnId} to {displayName}. slots: vcnId: path.vcnId displayName: requestBody.displayName - text: Set encryption to {isEncrypted} on VCN {vcnId}. slots: isEncrypted: requestBody.isEncrypted vcnId: path.vcnId method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}'].delete update: x-apievangelist-phrasing: intent: Delete a virtual cloud network effect: destructive questions: - What has to be removed before I can delete a VCN? - Can I delete a VCN that still has gateways attached? instructions: - text: Delete VCN {vcnId}. slots: vcnId: path.vcnId - text: Remove the empty virtual cloud network {vcnId}. slots: vcnId: path.vcnId method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}/actions/addCidr'].post update: x-apievangelist-phrasing: intent: Add an IPv4 CIDR block to a VCN effect: write questions: - How do I expand a VCN's address space with another CIDR? - Can an added VCN CIDR overlap an existing one? instructions: - text: Add CIDR {cidrBlock} to VCN {vcnId}. slots: cidrBlock: requestBody.cidrBlock vcnId: path.vcnId - text: Expand virtual cloud network {vcnId} with block {cidrBlock}. slots: vcnId: path.vcnId cidrBlock: requestBody.cidrBlock method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}/actions/addIpv6Cidr'].post update: x-apievangelist-phrasing: intent: Add an IPv6 prefix to a VCN effect: write questions: - How do I add IPv6 to an existing VCN? - Can I add a private IPv6 prefix or my own BYOIPv6 range to a VCN? instructions: - text: Add an Oracle-allocated IPv6 prefix to VCN {vcnId}. slots: vcnId: path.vcnId - text: Add private IPv6 prefix {ipv6PrivateCidrBlock} to VCN {vcnId}. slots: ipv6PrivateCidrBlock: requestBody.ipv6PrivateCidrBlock vcnId: path.vcnId - text: Add BYOIPv6 range {byoipv6CidrDetail} to VCN {vcnId}. slots: byoipv6CidrDetail: requestBody.byoipv6CidrDetail vcnId: path.vcnId method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a VCN to another compartment effect: write questions: - Can I move a whole VCN into another compartment? - Do a VCN's subnets move when I change its compartment? instructions: - text: Move VCN {vcnId} into compartment {compartmentId}. slots: vcnId: path.vcnId compartmentId: requestBody.compartmentId - text: Relocate virtual cloud network {vcnId} to compartment {compartmentId}. slots: vcnId: path.vcnId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}/actions/modifyCidr'].post update: x-apievangelist-phrasing: intent: Resize a VCN's CIDR block effect: write questions: - Can I resize a VCN's CIDR block after creation? - What rules must a replacement VCN CIDR meet? instructions: - text: Change VCN {vcnId} CIDR from {originalCidrBlock} to {newCidrBlock}. slots: vcnId: path.vcnId originalCidrBlock: requestBody.originalCidrBlock newCidrBlock: requestBody.newCidrBlock - text: Resize block {originalCidrBlock} on VCN {vcnId} to {newCidrBlock}. slots: originalCidrBlock: requestBody.originalCidrBlock vcnId: path.vcnId newCidrBlock: requestBody.newCidrBlock method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}/actions/removeCidr'].post update: x-apievangelist-phrasing: intent: Remove an IPv4 CIDR block from a VCN effect: destructive questions: - How do I remove an extra CIDR block from a VCN? - Can I remove a VCN CIDR while a subnet still uses addresses in it? instructions: - text: Remove CIDR {cidrBlock} from VCN {vcnId}. slots: cidrBlock: requestBody.cidrBlock vcnId: path.vcnId - text: Shrink virtual cloud network {vcnId} by dropping block {cidrBlock}. slots: vcnId: path.vcnId cidrBlock: requestBody.cidrBlock method: generated generated: '2026-09-26' - target: $.paths['/vcns/{vcnId}/actions/removeIpv6Cidr'].post update: x-apievangelist-phrasing: intent: Remove an IPv6 prefix from a VCN effect: destructive questions: - How do I remove an IPv6 prefix from a VCN? - Can I take IPv6 back off a VCN once added? instructions: - text: Remove IPv6 prefix {ipv6CidrBlock} from VCN {vcnId}. slots: ipv6CidrBlock: requestBody.ipv6CidrBlock vcnId: path.vcnId - text: Drop the IPv6 range {ipv6CidrBlock} from virtual cloud network {vcnId}. slots: ipv6CidrBlock: requestBody.ipv6CidrBlock vcnId: path.vcnId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuitBandwidthShapes'].get update: x-apievangelist-phrasing: intent: List FastConnect virtual circuit bandwidths effect: read questions: - What bandwidth levels can I choose for a FastConnect virtual circuit? - Which virtual circuit speeds are available for direct colocation? instructions: - text: List virtual circuit bandwidth shapes for compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show the FastConnect bandwidth levels I can order in compartment {compartmentId}. slots: compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits'].get update: x-apievangelist-phrasing: intent: List FastConnect virtual circuits effect: read questions: - Which FastConnect virtual circuits do I have? - Can I filter virtual circuits by lifecycle state? instructions: - text: List the virtual circuits in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: Show virtual circuits in compartment {compartmentId} with state {lifecycleState}. slots: compartmentId: query.compartmentId lifecycleState: query.lifecycleState method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits'].post update: x-apievangelist-phrasing: intent: Create a FastConnect virtual circuit effect: write questions: - How do I create a private FastConnect virtual circuit to my DRG? - Can I create a virtual circuit through a FastConnect partner using their service key? instructions: - text: Create a {type} virtual circuit in compartment {compartmentId}. slots: type: requestBody.type compartmentId: requestBody.compartmentId - text: Create a {type} virtual circuit at {bandwidthShapeName} to gateway {gatewayId} in compartment {compartmentId}. slots: type: requestBody.type bandwidthShapeName: requestBody.bandwidthShapeName gatewayId: requestBody.gatewayId compartmentId: requestBody.compartmentId - text: Create a {type} virtual circuit via provider service {providerServiceId} with key {providerServiceKeyName} in {compartmentId}. slots: type: requestBody.type providerServiceId: requestBody.providerServiceId providerServiceKeyName: requestBody.providerServiceKeyName compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}'].get update: x-apievangelist-phrasing: intent: Get a FastConnect virtual circuit effect: read questions: - Is my FastConnect virtual circuit provisioned and is BGP up? - Can I look up one virtual circuit by OCID? instructions: - text: Get virtual circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId - text: Show the BGP and provisioning state of virtual circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}'].put update: x-apievangelist-phrasing: intent: Update a FastConnect virtual circuit effect: write questions: - Can I change the bandwidth of an existing virtual circuit? - How do I disable the BGP session or enable BFD on a virtual circuit? instructions: - text: Change virtual circuit {virtualCircuitId} bandwidth to {bandwidthShapeName}. slots: virtualCircuitId: path.virtualCircuitId bandwidthShapeName: requestBody.bandwidthShapeName - text: Set the BGP admin state of virtual circuit {virtualCircuitId} to {bgpAdminState}. slots: virtualCircuitId: path.virtualCircuitId bgpAdminState: requestBody.bgpAdminState - text: Set BFD to {isBfdEnabled} on virtual circuit {virtualCircuitId}. slots: isBfdEnabled: requestBody.isBfdEnabled virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}'].delete update: x-apievangelist-phrasing: intent: Delete a FastConnect virtual circuit effect: destructive questions: - How do I terminate a FastConnect virtual circuit? - Do I also need to cancel with my FastConnect partner after deleting a circuit? instructions: - text: Delete virtual circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId - text: Terminate FastConnect virtual circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}/actions/bulkAddPublicPrefixes'].post update: x-apievangelist-phrasing: intent: Add public IP prefixes to a public virtual circuit effect: write questions: - How do I advertise my public prefixes over a public FastConnect virtual circuit? - Can I add several customer public prefixes to a circuit at once? instructions: - text: Add public prefixes {publicPrefixes} to virtual circuit {virtualCircuitId}. slots: publicPrefixes: requestBody.publicPrefixes virtualCircuitId: path.virtualCircuitId - text: Register customer prefixes {publicPrefixes} on public circuit {virtualCircuitId}. slots: publicPrefixes: requestBody.publicPrefixes virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}/actions/bulkDeletePublicPrefixes'].post update: x-apievangelist-phrasing: intent: Remove public IP prefixes from a public virtual circuit effect: destructive questions: - How do I stop using some of my public prefixes on a public virtual circuit? - Can I remove several customer prefixes from a circuit in one call? instructions: - text: Remove public prefixes {publicPrefixes} from virtual circuit {virtualCircuitId}. slots: publicPrefixes: requestBody.publicPrefixes virtualCircuitId: path.virtualCircuitId - text: Delete customer prefixes {publicPrefixes} on public circuit {virtualCircuitId}. slots: publicPrefixes: requestBody.publicPrefixes virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a virtual circuit to another compartment effect: write questions: - Can I move a FastConnect virtual circuit into another compartment? - What call relocates a virtual circuit? instructions: - text: Move virtual circuit {virtualCircuitId} into compartment {compartmentId}. slots: virtualCircuitId: path.virtualCircuitId compartmentId: requestBody.compartmentId - text: Relocate FastConnect circuit {virtualCircuitId} to compartment {compartmentId}. slots: virtualCircuitId: path.virtualCircuitId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}/associatedTunnels'].get update: x-apievangelist-phrasing: intent: List IPSec tunnels running over a virtual circuit effect: read questions: - Which IPSec tunnels ride on a given FastConnect virtual circuit? - Can I see the IPSec-over-FastConnect tunnels tied to a circuit? instructions: - text: List the tunnels associated with virtual circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId - text: Show IPSec tunnels using FastConnect circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}/crossConnectMappings'].get update: x-apievangelist-phrasing: intent: List a virtual circuit's cross-connect mappings effect: read questions: - Which cross-connects and BGP addresses is my virtual circuit mapped to? - Can I see the VLAN and peering IPs for each cross-connect on a circuit? instructions: - text: List cross-connect mappings for virtual circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId - text: Show the cross-connect and BGP peering details of circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/virtualCircuits/{virtualCircuitId}/publicPrefixes'].get update: x-apievangelist-phrasing: intent: List a public virtual circuit's prefixes effect: read questions: - What public prefixes are on my public virtual circuit and are they verified? - Can I list only the prefixes still pending verification? instructions: - text: List the public prefixes on virtual circuit {virtualCircuitId}. slots: virtualCircuitId: path.virtualCircuitId - text: Show prefixes with verification state {verificationState} on circuit {virtualCircuitId}. slots: verificationState: query.verificationState virtualCircuitId: path.virtualCircuitId method: generated generated: '2026-09-26' - target: $.paths['/vlans'].get update: x-apievangelist-phrasing: intent: List VLANs in a VCN effect: read questions: - Which VLANs exist in my VCN? - Can I filter VLANs by display name or state? instructions: - text: List the VLANs in VCN {vcnId} and compartment {compartmentId}. slots: vcnId: query.vcnId compartmentId: query.compartmentId - text: Find VLANs named {displayName} in VCN {vcnId}, compartment {compartmentId}. slots: displayName: query.displayName vcnId: query.vcnId compartmentId: query.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/vlans'].post update: x-apievangelist-phrasing: intent: Create a VLAN in a VCN effect: write questions: - How do I create a VLAN for Oracle Cloud VMware Solution? - Can I pick the VLAN tag and NSGs when creating a VLAN? instructions: - text: Create a VLAN with CIDR {cidrBlock} in {availabilityDomain} on VCN {vcnId} in compartment {compartmentId}. slots: cidrBlock: requestBody.cidrBlock availabilityDomain: requestBody.availabilityDomain vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create VLAN tag {vlanTag} using {cidrBlock} in {availabilityDomain}, VCN {vcnId}, compartment {compartmentId}. slots: vlanTag: requestBody.vlanTag cidrBlock: requestBody.cidrBlock availabilityDomain: requestBody.availabilityDomain vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/vlans/{vlanId}'].get update: x-apievangelist-phrasing: intent: Get a VLAN effect: read questions: - What CIDR and VLAN tag does a given VLAN use? - Can I look up one VLAN by OCID? instructions: - text: Get VLAN {vlanId}. slots: vlanId: path.vlanId - text: Show the configuration of VLAN {vlanId}. slots: vlanId: path.vlanId method: generated generated: '2026-09-26' - target: $.paths['/vlans/{vlanId}'].put update: x-apievangelist-phrasing: intent: Update a VLAN effect: write questions: - Can I change the route table or NSGs on a VLAN? - Will updating a VLAN affect the VNICs inside it? instructions: - text: Point VLAN {vlanId} at route table {routeTableId}. slots: vlanId: path.vlanId routeTableId: requestBody.routeTableId - text: Set the network security groups on VLAN {vlanId} to {nsgIds}. slots: vlanId: path.vlanId nsgIds: requestBody.nsgIds method: generated generated: '2026-09-26' - target: $.paths['/vlans/{vlanId}'].delete update: x-apievangelist-phrasing: intent: Delete a VLAN effect: destructive questions: - Can I delete a VLAN that still has VNICs? - How do I remove an empty VLAN? instructions: - text: Delete VLAN {vlanId}. slots: vlanId: path.vlanId - text: Remove the empty VLAN {vlanId}. slots: vlanId: path.vlanId method: generated generated: '2026-09-26' - target: $.paths['/vlans/{vlanId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a VLAN to another compartment effect: write questions: - Can a VLAN be moved into a different compartment? - What call relocates a VLAN? instructions: - text: Move VLAN {vlanId} into compartment {compartmentId}. slots: vlanId: path.vlanId compartmentId: requestBody.compartmentId - text: Relocate VLAN {vlanId} to compartment {compartmentId}. slots: vlanId: path.vlanId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/vnics/{vnicId}'].get update: x-apievangelist-phrasing: intent: Get a virtual network interface card effect: read questions: - What private and public IPs does a VNIC have? - Can I look up a VNIC by its OCID? instructions: - text: Get VNIC {vnicId}. slots: vnicId: path.vnicId - text: Show the addresses and subnet of network interface {vnicId}. slots: vnicId: path.vnicId method: generated generated: '2026-09-26' - target: $.paths['/vnics/{vnicId}'].put update: x-apievangelist-phrasing: intent: Update a VNIC's NSGs, hostname or checks effect: write questions: - How do I add a VNIC to network security groups? - Can I disable source/destination checks on a VNIC so it can route traffic? instructions: - text: Set the network security groups on VNIC {vnicId} to {nsgIds}. slots: vnicId: path.vnicId nsgIds: requestBody.nsgIds - text: Set skipSourceDestCheck to {skipSourceDestCheck} on VNIC {vnicId}. slots: skipSourceDestCheck: requestBody.skipSourceDestCheck vnicId: path.vnicId - text: Change the hostname of VNIC {vnicId} to {hostnameLabel}. slots: vnicId: path.vnicId hostnameLabel: requestBody.hostnameLabel method: generated generated: '2026-09-26' - target: $.paths['/vtaps'].get update: x-apievangelist-phrasing: intent: List virtual test access points effect: read questions: - Which VTAPs are mirroring traffic in my compartment? - Can I list only the enabled VTAPs for a given source? instructions: - text: List the VTAPs in compartment {compartmentId}. slots: compartmentId: query.compartmentId - text: List VTAPs mirroring source {source} in compartment {compartmentId}. slots: source: query.source compartmentId: query.compartmentId - text: List VTAPs in VCN {vcnId} of compartment {compartmentId} with enabled set to {isVtapEnabled}. slots: vcnId: query.vcnId compartmentId: query.compartmentId isVtapEnabled: query.isVtapEnabled method: generated generated: '2026-09-26' - target: $.paths['/vtaps'].post update: x-apievangelist-phrasing: intent: Create a virtual test access point effect: write questions: - How do I mirror network traffic from a VNIC to a monitoring target? - Can I set a maximum packet size when creating a VTAP? instructions: - text: Create a VTAP mirroring source {sourceId} with capture filter {captureFilterId} in VCN {vcnId}, compartment {compartmentId}. slots: sourceId: requestBody.sourceId captureFilterId: requestBody.captureFilterId vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId - text: Create VTAP from {sourceId} to target {targetId} using filter {captureFilterId} on VCN {vcnId} in {compartmentId}. slots: sourceId: requestBody.sourceId targetId: requestBody.targetId captureFilterId: requestBody.captureFilterId vcnId: requestBody.vcnId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26' - target: $.paths['/vtaps/{vtapId}'].get update: x-apievangelist-phrasing: intent: Get a virtual test access point effect: read questions: - What source and target does a given VTAP mirror between? - Can I look up one VTAP by OCID? instructions: - text: Get VTAP {vtapId}. slots: vtapId: path.vtapId - text: Show the source, target and filter of VTAP {vtapId}. slots: vtapId: path.vtapId method: generated generated: '2026-09-26' - target: $.paths['/vtaps/{vtapId}'].put update: x-apievangelist-phrasing: intent: Update a virtual test access point effect: write questions: - Can I pause a VTAP without deleting it? - How do I change the capture filter or target of an existing VTAP? instructions: - text: Set enabled to {isVtapEnabled} on VTAP {vtapId}. slots: isVtapEnabled: requestBody.isVtapEnabled vtapId: path.vtapId - text: Switch VTAP {vtapId} to capture filter {captureFilterId}. slots: vtapId: path.vtapId captureFilterId: requestBody.captureFilterId - text: Send mirrored traffic from VTAP {vtapId} to target {targetId}. slots: vtapId: path.vtapId targetId: requestBody.targetId method: generated generated: '2026-09-26' - target: $.paths['/vtaps/{vtapId}'].delete update: x-apievangelist-phrasing: intent: Delete a virtual test access point effect: destructive questions: - How do I stop and remove a VTAP permanently? - Is VTAP deletion asynchronous? instructions: - text: Delete VTAP {vtapId}. slots: vtapId: path.vtapId - text: Remove virtual test access point {vtapId}. slots: vtapId: path.vtapId method: generated generated: '2026-09-26' - target: $.paths['/vtaps/{vtapId}/actions/changeCompartment'].post update: x-apievangelist-phrasing: intent: Move a VTAP to another compartment effect: write questions: - Can I move a VTAP into another compartment? - What call relocates a virtual test access point? instructions: - text: Move VTAP {vtapId} into compartment {compartmentId}. slots: vtapId: path.vtapId compartmentId: requestBody.compartmentId - text: Relocate virtual test access point {vtapId} to compartment {compartmentId}. slots: vtapId: path.vtapId compartmentId: requestBody.compartmentId method: generated generated: '2026-09-26'