Chilkat Online Tools

DataFlex / Core Services API / ListNatGateways

Back to Collection Items

Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Variant vQueryParams
    Handle hoQueryParams
    Variant vResp
    Handle hoResp
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Handle hoJarrResp
    Integer iRespStatusCode
    Variant vJson
    Handle hoJson
    String sValue
    String sVcnIdValue
    String sNatIpValue
    String sIdValue
    String sLifecycleStateValue
    String sTimeCreatedValue
    String sBlockTrafficValue
    String sDefinedTagsValue
    String sDisplayNameValue
    String sFreeformTagsValue
    String sPublicIpIdValue
    Integer i
    Integer iCount_i
    String sTemp1
    Boolean bTemp1

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    Get Create (RefClass(cComChilkatJsonObject)) To hoQueryParams
    If (Not(IsComObjectCreated(hoQueryParams))) Begin
        Send CreateComObject of hoQueryParams
    End
    Get ComUpdateString Of hoQueryParams "compartmentId" "{{compartment_ocid}}" To iSuccess
    Get ComUpdateInt Of hoQueryParams "limit" 801 To iSuccess
    Get ComUpdateString Of hoQueryParams "sortBy" "TIMECREATED" To iSuccess
    Get ComUpdateString Of hoQueryParams "sortOrder" "DESC" To iSuccess

    Send ComSetRequestHeader To hoHttp "Authorization" "{{signature}}"
    Send ComSetRequestHeader To hoHttp "Date" "{{date}}"

    Get pvComObject of hoQueryParams to vQueryParams
    Get ComQuickRequestParams Of hoHttp "GET" "https://iaas.{{region}}.oraclecloud.com/20160918/natGateways" vQueryParams To vResp
    If (IsComObject(vResp)) Begin
        Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
        Set pvComObject Of hoResp To vResp
    End
    Get ComLastMethodSuccess Of hoHttp To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
    If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
        Send CreateComObject of hoSbResponseBody
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess

    Get Create (RefClass(cComChilkatJsonArray)) To hoJarrResp
    If (Not(IsComObjectCreated(hoJarrResp))) Begin
        Send CreateComObject of hoJarrResp
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComLoadSb Of hoJarrResp vSbResponseBody To iSuccess
    Set ComEmitCompact Of hoJarrResp To False

    Showln "Response Body:"
    Get ComEmit Of hoJarrResp To sTemp1
    Showln sTemp1

    Get ComStatusCode Of hoResp To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComHeader Of hoResp To sTemp1
        Showln sTemp1
        Showln "Failed."
        Send Destroy of hoResp
        Procedure_Return
    End

    Send Destroy of hoResp

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // [
    //   {
    //     "compartmentId": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "vcnId": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "natIp": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "id": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "lifecycleState": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "timeCreated": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "blockTraffic": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "definedTags": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "displayName": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "freeformTags": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "publicIpId": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     }
    //   },
    //   {
    //     "compartmentId": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "vcnId": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "natIp": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "id": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "lifecycleState": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "timeCreated": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "blockTraffic": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "definedTags": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "displayName": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "freeformTags": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     },
    //     "publicIpId": {
    //       "value": "<Error: Too many levels of nesting to fake this schema>"
    //     }
    //   }
    // ]

    // Sample code for parsing the JSON response...
    // Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

    Move 0 To i
    Get ComSize Of hoJarrResp To iCount_i
    While (i < iCount_i)
        Get ComObjectAt Of hoJarrResp i To vJson
        If (IsComObject(vJson)) Begin
            Get Create (RefClass(cComChilkatJsonObject)) To hoJson
            Set pvComObject Of hoJson To vJson
        End
        Get ComStringOf Of hoJson "compartmentId.value" To sValue
        Get ComStringOf Of hoJson "vcnId.value" To sVcnIdValue
        Get ComStringOf Of hoJson "natIp.value" To sNatIpValue
        Get ComStringOf Of hoJson "id.value" To sIdValue
        Get ComStringOf Of hoJson "lifecycleState.value" To sLifecycleStateValue
        Get ComStringOf Of hoJson "timeCreated.value" To sTimeCreatedValue
        Get ComStringOf Of hoJson "blockTraffic.value" To sBlockTrafficValue
        Get ComStringOf Of hoJson "definedTags.value" To sDefinedTagsValue
        Get ComStringOf Of hoJson "displayName.value" To sDisplayNameValue
        Get ComStringOf Of hoJson "freeformTags.value" To sFreeformTagsValue
        Get ComStringOf Of hoJson "publicIpId.value" To sPublicIpIdValue
        Send Destroy of hoJson
        Move (i + 1) To i
    Loop



End_Procedure

Curl Command

curl -G -d "compartmentId=%7B%7Bcompartment_ocid%7D%7D"
	-d "limit=801"
	-d "sortBy=TIMECREATED"
	-d "sortOrder=DESC"
	-H "Date: {{date}}"
	-H "Authorization: {{signature}}"
https://iaas.{{region}}.oraclecloud.com/20160918/natGateways

Postman Collection Item JSON

{
  "name": "ListNatGateways",
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Date",
        "value": "{{date}}",
        "description": "(Required) Current Date",
        "type": "text"
      },
      {
        "key": "Authorization",
        "value": "{{signature}}",
        "description": "(Required) Signature Authentication on Authorization header",
        "type": "text"
      }
    ],
    "url": {
      "raw": "{{baseUrl}}/natGateways?compartmentId={{compartment_ocid}}&limit=801&sortBy=TIMECREATED&sortOrder=DESC",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "natGateways"
      ],
      "query": [
        {
          "key": "compartmentId",
          "value": "{{compartment_ocid}}",
          "description": "(Required) The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment."
        },
        {
          "key": "vcnId",
          "value": "ocid1.vcn.oc1...",
          "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the VCN.",
          "disabled": true
        },
        {
          "key": "limit",
          "value": "801",
          "description": "For list pagination. The maximum number of results per page, or items to return in a paginated\n\"List\" call. For important details about how pagination works, see\n[List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine).\n\nExample: `50`\n"
        },
        {
          "key": "page",
          "value": "laboris proident officia tempor",
          "description": "For list pagination. The value of the `opc-next-page` response header from the previous \"List\"\ncall. For important details about how pagination works, see\n[List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine).\n",
          "disabled": true
        },
        {
          "key": "displayName",
          "value": "amet ut",
          "description": "A filter to return only resources that match the given display name exactly.\n",
          "disabled": true
        },
        {
          "key": "sortBy",
          "value": "TIMECREATED",
          "description": "The field to sort by. You can provide one sort order (`sortOrder`). Default order for\nTIMECREATED is descending. Default order for DISPLAYNAME is ascending. The DISPLAYNAME\nsort order is case sensitive.\n\n**Note:** In general, some \"List\" operations (for example, `ListInstances`) let you\noptionally filter by availability domain if the scope of the resource type is within a\nsingle availability domain. If you call one of these \"List\" operations without specifying\nan availability domain, the resources are grouped by availability domain, then sorted.\n"
        },
        {
          "key": "sortOrder",
          "value": "DESC",
          "description": "The sort order to use, either ascending (`ASC`) or descending (`DESC`). The DISPLAYNAME sort order\nis case sensitive.\n"
        },
        {
          "key": "lifecycleState",
          "value": "AVAILABLE",
          "description": "A filter to return only resources that match the specified lifecycle\nstate. The value is case insensitive.\n",
          "disabled": true
        }
      ]
    },
    "description": "Lists the NAT gateways in the specified compartment. You may optionally specify a VCN OCID\nto filter the results by VCN.\n"
  },
  "response": [
    {
      "name": "The list is being retrieved.",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{baseUrl}}/natGateways?compartmentId=amet ut&vcnId=amet ut&limit=801&page=laboris proident officia tempor&displayName=amet ut&sortBy=TIMECREATED&sortOrder=DESC&lifecycleState=officia sed",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "natGateways"
          ],
          "query": [
            {
              "key": "compartmentId",
              "value": "amet ut"
            },
            {
              "key": "vcnId",
              "value": "amet ut"
            },
            {
              "key": "limit",
              "value": "801"
            },
            {
              "key": "page",
              "value": "laboris proident officia tempor"
            },
            {
              "key": "displayName",
              "value": "amet ut"
            },
            {
              "key": "sortBy",
              "value": "TIMECREATED"
            },
            {
              "key": "sortOrder",
              "value": "DESC"
            },
            {
              "key": "lifecycleState",
              "value": "officia sed"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "opc-next-page",
          "value": "officia sed",
          "description": "For list pagination. When this header appears in the response, additional pages\nof results remain. For important details about how pagination works, see\n[List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine).\n"
        },
        {
          "key": "opc-request-id",
          "value": "officia sed",
          "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "[\n {\n  \"compartmentId\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"vcnId\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"natIp\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"id\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"lifecycleState\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"timeCreated\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"blockTraffic\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"definedTags\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"displayName\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"freeformTags\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"publicIpId\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  }\n },\n {\n  \"compartmentId\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"vcnId\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"natIp\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"id\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"lifecycleState\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"timeCreated\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"blockTraffic\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"definedTags\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"displayName\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"freeformTags\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  },\n  \"publicIpId\": {\n   \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n  }\n }\n]"
    },
    {
      "name": "Bad Request",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{baseUrl}}/natGateways?compartmentId=amet ut&vcnId=amet ut&limit=801&page=laboris proident officia tempor&displayName=amet ut&sortBy=TIMECREATED&sortOrder=DESC&lifecycleState=officia sed",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "natGateways"
          ],
          "query": [
            {
              "key": "compartmentId",
              "value": "amet ut"
            },
            {
              "key": "vcnId",
              "value": "amet ut"
            },
            {
              "key": "limit",
              "value": "801"
            },
            {
              "key": "page",
              "value": "laboris proident officia tempor"
            },
            {
              "key": "displayName",
              "value": "amet ut"
            },
            {
              "key": "sortBy",
              "value": "TIMECREATED"
            },
            {
              "key": "sortOrder",
              "value": "DESC"
            },
            {
              "key": "lifecycleState",
              "value": "officia sed"
            }
          ]
        }
      },
      "status": "Bad Request",
      "code": 400,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "opc-request-id",
          "value": "officia sed",
          "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"code\": \"et exercitation Excepteur\",\n \"message\": \"irure sit\"\n}"
    },
    {
      "name": "Unauthorized",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{baseUrl}}/natGateways?compartmentId=amet ut&vcnId=amet ut&limit=801&page=laboris proident officia tempor&displayName=amet ut&sortBy=TIMECREATED&sortOrder=DESC&lifecycleState=officia sed",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "natGateways"
          ],
          "query": [
            {
              "key": "compartmentId",
              "value": "amet ut"
            },
            {
              "key": "vcnId",
              "value": "amet ut"
            },
            {
              "key": "limit",
              "value": "801"
            },
            {
              "key": "page",
              "value": "laboris proident officia tempor"
            },
            {
              "key": "displayName",
              "value": "amet ut"
            },
            {
              "key": "sortBy",
              "value": "TIMECREATED"
            },
            {
              "key": "sortOrder",
              "value": "DESC"
            },
            {
              "key": "lifecycleState",
              "value": "officia sed"
            }
          ]
        }
      },
      "status": "Unauthorized",
      "code": 401,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "opc-request-id",
          "value": "officia sed",
          "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"code\": \"et exercitation Excepteur\",\n \"message\": \"irure sit\"\n}"
    },
    {
      "name": "Not Found",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{baseUrl}}/natGateways?compartmentId=amet ut&vcnId=amet ut&limit=801&page=laboris proident officia tempor&displayName=amet ut&sortBy=TIMECREATED&sortOrder=DESC&lifecycleState=officia sed",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "natGateways"
          ],
          "query": [
            {
              "key": "compartmentId",
              "value": "amet ut"
            },
            {
              "key": "vcnId",
              "value": "amet ut"
            },
            {
              "key": "limit",
              "value": "801"
            },
            {
              "key": "page",
              "value": "laboris proident officia tempor"
            },
            {
              "key": "displayName",
              "value": "amet ut"
            },
            {
              "key": "sortBy",
              "value": "TIMECREATED"
            },
            {
              "key": "sortOrder",
              "value": "DESC"
            },
            {
              "key": "lifecycleState",
              "value": "officia sed"
            }
          ]
        }
      },
      "status": "Not Found",
      "code": 404,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "opc-request-id",
          "value": "officia sed",
          "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"code\": \"et exercitation Excepteur\",\n \"message\": \"irure sit\"\n}"
    },
    {
      "name": "Internal Server Error",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{baseUrl}}/natGateways?compartmentId=amet ut&vcnId=amet ut&limit=801&page=laboris proident officia tempor&displayName=amet ut&sortBy=TIMECREATED&sortOrder=DESC&lifecycleState=officia sed",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "natGateways"
          ],
          "query": [
            {
              "key": "compartmentId",
              "value": "amet ut"
            },
            {
              "key": "vcnId",
              "value": "amet ut"
            },
            {
              "key": "limit",
              "value": "801"
            },
            {
              "key": "page",
              "value": "laboris proident officia tempor"
            },
            {
              "key": "displayName",
              "value": "amet ut"
            },
            {
              "key": "sortBy",
              "value": "TIMECREATED"
            },
            {
              "key": "sortOrder",
              "value": "DESC"
            },
            {
              "key": "lifecycleState",
              "value": "officia sed"
            }
          ]
        }
      },
      "status": "Internal Server Error",
      "code": 500,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "opc-request-id",
          "value": "officia sed",
          "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"code\": \"et exercitation Excepteur\",\n \"message\": \"irure sit\"\n}"
    },
    {
      "name": "An error has occurred.",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{baseUrl}}/natGateways?compartmentId=amet ut&vcnId=amet ut&limit=801&page=laboris proident officia tempor&displayName=amet ut&sortBy=TIMECREATED&sortOrder=DESC&lifecycleState=officia sed",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "natGateways"
          ],
          "query": [
            {
              "key": "compartmentId",
              "value": "amet ut"
            },
            {
              "key": "vcnId",
              "value": "amet ut"
            },
            {
              "key": "limit",
              "value": "801"
            },
            {
              "key": "page",
              "value": "laboris proident officia tempor"
            },
            {
              "key": "displayName",
              "value": "amet ut"
            },
            {
              "key": "sortBy",
              "value": "TIMECREATED"
            },
            {
              "key": "sortOrder",
              "value": "DESC"
            },
            {
              "key": "lifecycleState",
              "value": "officia sed"
            }
          ]
        }
      },
      "status": "Internal Server Error",
      "code": 500,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "opc-request-id",
          "value": "officia sed",
          "description": "Unique Oracle-assigned identifier for the request. If you need to contact\nOracle about a particular request, please provide the request ID.\n"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"code\": \"et exercitation Excepteur\",\n \"message\": \"irure sit\"\n}"
    }
  ]
}