Welcome back. In this video, we're going to go into the basic syntax of the OCI CLI commands. Every command starts with the word oci then you have to tell it what service you want to talk to. For example, you could choose compute, network, or database to name just a few. To figure out what keyword to use for which service, you have to either look at the documentation or use the command oci-h. Once you specify the service, you need to tell it what resource type you want to interact with. For compute, an example would be instance, for network, an example would be VCN, and for DB and example would be database. For each service, you can again use the -h option to view the possible resource types. Then you have to specify the action you want to execute for that resource type. Some examples that are common among different resource types are create, delete, and list. Just like before we can get the reference for each resource with the -h option. Finally, each command takes a list of options, some mandatory and some optional. These will vary widely between different resources and actions, but again, you can use the -h option for help here. We'll talk more about options in a second, but let's walk through a concrete example first. Starting from the left, we have oci as the base command as always. Then we're selecting Object Storage as the service. The fact that it's abbreviated as os is just something you have to use the reference for. Then we select bucket as our resource type within object storage, and finally, we say that we want to create one. If we use the help option, we get an output that looks something like this. You can usually scroll through these documents with the arrow keys. If we look at the required parameters, we can see that we have two required parameters, compartment id, and name. For us to specify those and an optional parameter it looks a little bit like this. We give the namespace, the bucket name, and the compartment OCID. To figure out how to do this in general, let's look back at the CLI help command. If we look at any of these parameters, we'll see that it gives a type for the option. In this example, all of them have text. Let's dig into these a little bit. Options have four basic types. The first is text. This is just a string of characters. The [inaudible] here to use quotes if there are spaces and to escape any special characters based on the shell. Second, we have integers, then just means a number. Third, we have booleans. For these you have to just enter true or false. The last and most difficult one is complex type. These are JSON strings. In general, you have to generate a JSON template to fill in to figure these out. To do this for a single parameter, we can use the generate-param-json-input option and pass it the parameter name. An example output of this would look like this. Here we can see how to format the JSON for cidr-blocks of a VCN. Each string would specify a single cidr-block. If instead of generating the template for a single parameter, we wanted to generate the template for all parameters, we could use the parameter generate-full-command-json-input. An example of that would look like this. Here we get a template that we can fill in for any of the possible parameters for generating a VCN. Just to show a couple of examples of complex types. This first example uses a JSON string to specify the cidr-blocks of a new VCN. The second example uses a JSON string to specify key-value pairs for metadata while uploading a file to Object Storage. That's most of what you need to know to use the OCI CLI. In the next video, we'll take a look at some of these commands and action. See you there.