Oracle Cloud Infrastructure v2.17.0 published on Friday, Nov 15, 2024 by Pulumi
oci.ServiceMesh.getVirtualServices
Explore with Pulumi AI
This data source provides the list of Virtual Services in Oracle Cloud Infrastructure Service Mesh service.
Returns a list of VirtualService objects.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as oci from "@pulumi/oci";
const testVirtualServices = oci.ServiceMesh.getVirtualServices({
compartmentId: compartmentId,
id: virtualServiceId,
meshId: testMesh.id,
name: virtualServiceName,
state: virtualServiceState,
});
import pulumi
import pulumi_oci as oci
test_virtual_services = oci.ServiceMesh.get_virtual_services(compartment_id=compartment_id,
id=virtual_service_id,
mesh_id=test_mesh["id"],
name=virtual_service_name,
state=virtual_service_state)
package main
import (
"github.com/pulumi/pulumi-oci/sdk/v2/go/oci/ServiceMesh"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ServiceMesh.GetVirtualServices(ctx, &servicemesh.GetVirtualServicesArgs{
CompartmentId: compartmentId,
Id: pulumi.StringRef(virtualServiceId),
MeshId: pulumi.StringRef(testMesh.Id),
Name: pulumi.StringRef(virtualServiceName),
State: pulumi.StringRef(virtualServiceState),
}, nil)
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Oci = Pulumi.Oci;
return await Deployment.RunAsync(() =>
{
var testVirtualServices = Oci.ServiceMesh.GetVirtualServices.Invoke(new()
{
CompartmentId = compartmentId,
Id = virtualServiceId,
MeshId = testMesh.Id,
Name = virtualServiceName,
State = virtualServiceState,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.oci.ServiceMesh.ServiceMeshFunctions;
import com.pulumi.oci.ServiceMesh.inputs.GetVirtualServicesArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var testVirtualServices = ServiceMeshFunctions.getVirtualServices(GetVirtualServicesArgs.builder()
.compartmentId(compartmentId)
.id(virtualServiceId)
.meshId(testMesh.id())
.name(virtualServiceName)
.state(virtualServiceState)
.build());
}
}
variables:
testVirtualServices:
fn::invoke:
Function: oci:ServiceMesh:getVirtualServices
Arguments:
compartmentId: ${compartmentId}
id: ${virtualServiceId}
meshId: ${testMesh.id}
name: ${virtualServiceName}
state: ${virtualServiceState}
Using getVirtualServices
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getVirtualServices(args: GetVirtualServicesArgs, opts?: InvokeOptions): Promise<GetVirtualServicesResult>
function getVirtualServicesOutput(args: GetVirtualServicesOutputArgs, opts?: InvokeOptions): Output<GetVirtualServicesResult>
def get_virtual_services(compartment_id: Optional[str] = None,
filters: Optional[Sequence[_servicemesh.GetVirtualServicesFilter]] = None,
id: Optional[str] = None,
mesh_id: Optional[str] = None,
name: Optional[str] = None,
state: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetVirtualServicesResult
def get_virtual_services_output(compartment_id: Optional[pulumi.Input[str]] = None,
filters: Optional[pulumi.Input[Sequence[pulumi.Input[_servicemesh.GetVirtualServicesFilterArgs]]]] = None,
id: Optional[pulumi.Input[str]] = None,
mesh_id: Optional[pulumi.Input[str]] = None,
name: Optional[pulumi.Input[str]] = None,
state: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetVirtualServicesResult]
func GetVirtualServices(ctx *Context, args *GetVirtualServicesArgs, opts ...InvokeOption) (*GetVirtualServicesResult, error)
func GetVirtualServicesOutput(ctx *Context, args *GetVirtualServicesOutputArgs, opts ...InvokeOption) GetVirtualServicesResultOutput
> Note: This function is named GetVirtualServices
in the Go SDK.
public static class GetVirtualServices
{
public static Task<GetVirtualServicesResult> InvokeAsync(GetVirtualServicesArgs args, InvokeOptions? opts = null)
public static Output<GetVirtualServicesResult> Invoke(GetVirtualServicesInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetVirtualServicesResult> getVirtualServices(GetVirtualServicesArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
function: oci:ServiceMesh/getVirtualServices:getVirtualServices
arguments:
# arguments dictionary
The following arguments are supported:
- Compartment
Id string - The ID of the compartment in which to list resources.
- Filters
List<Get
Virtual Services Filter> - Id string
- Unique VirtualService identifier.
- Mesh
Id string - Unique Mesh identifier.
- Name string
- A filter to return only resources that match the entire name given.
- State string
- A filter to return only resources that match the life cycle state given.
- Compartment
Id string - The ID of the compartment in which to list resources.
- Filters
[]Get
Virtual Services Filter - Id string
- Unique VirtualService identifier.
- Mesh
Id string - Unique Mesh identifier.
- Name string
- A filter to return only resources that match the entire name given.
- State string
- A filter to return only resources that match the life cycle state given.
- compartment
Id String - The ID of the compartment in which to list resources.
- filters
List<Get
Virtual Services Filter> - id String
- Unique VirtualService identifier.
- mesh
Id String - Unique Mesh identifier.
- name String
- A filter to return only resources that match the entire name given.
- state String
- A filter to return only resources that match the life cycle state given.
- compartment
Id string - The ID of the compartment in which to list resources.
- filters
Get
Virtual Services Filter[] - id string
- Unique VirtualService identifier.
- mesh
Id string - Unique Mesh identifier.
- name string
- A filter to return only resources that match the entire name given.
- state string
- A filter to return only resources that match the life cycle state given.
- compartment_
id str - The ID of the compartment in which to list resources.
- filters
Sequence[servicemesh.
Get Virtual Services Filter] - id str
- Unique VirtualService identifier.
- mesh_
id str - Unique Mesh identifier.
- name str
- A filter to return only resources that match the entire name given.
- state str
- A filter to return only resources that match the life cycle state given.
- compartment
Id String - The ID of the compartment in which to list resources.
- filters List<Property Map>
- id String
- Unique VirtualService identifier.
- mesh
Id String - Unique Mesh identifier.
- name String
- A filter to return only resources that match the entire name given.
- state String
- A filter to return only resources that match the life cycle state given.
getVirtualServices Result
The following output properties are available:
- Compartment
Id string - The OCID of the compartment.
- Virtual
Service List<GetCollections Virtual Services Virtual Service Collection> - The list of virtual_service_collection.
- Filters
List<Get
Virtual Services Filter> - Id string
- Unique identifier that is immutable on creation.
- Mesh
Id string - The OCID of the service mesh in which this virtual service is created.
- Name string
- A user-friendly name. The name has to be unique within the same service mesh and cannot be changed after creation. Avoid entering confidential information. Example:
My unique resource name
- State string
- The current state of the Resource.
- Compartment
Id string - The OCID of the compartment.
- Virtual
Service []GetCollections Virtual Services Virtual Service Collection - The list of virtual_service_collection.
- Filters
[]Get
Virtual Services Filter - Id string
- Unique identifier that is immutable on creation.
- Mesh
Id string - The OCID of the service mesh in which this virtual service is created.
- Name string
- A user-friendly name. The name has to be unique within the same service mesh and cannot be changed after creation. Avoid entering confidential information. Example:
My unique resource name
- State string
- The current state of the Resource.
- compartment
Id String - The OCID of the compartment.
- virtual
Service List<GetCollections Virtual Services Virtual Service Collection> - The list of virtual_service_collection.
- filters
List<Get
Virtual Services Filter> - id String
- Unique identifier that is immutable on creation.
- mesh
Id String - The OCID of the service mesh in which this virtual service is created.
- name String
- A user-friendly name. The name has to be unique within the same service mesh and cannot be changed after creation. Avoid entering confidential information. Example:
My unique resource name
- state String
- The current state of the Resource.
- compartment
Id string - The OCID of the compartment.
- virtual
Service GetCollections Virtual Services Virtual Service Collection[] - The list of virtual_service_collection.
- filters
Get
Virtual Services Filter[] - id string
- Unique identifier that is immutable on creation.
- mesh
Id string - The OCID of the service mesh in which this virtual service is created.
- name string
- A user-friendly name. The name has to be unique within the same service mesh and cannot be changed after creation. Avoid entering confidential information. Example:
My unique resource name
- state string
- The current state of the Resource.
- compartment_
id str - The OCID of the compartment.
- virtual_
service_ Sequence[servicemesh.collections Get Virtual Services Virtual Service Collection] - The list of virtual_service_collection.
- filters
Sequence[servicemesh.
Get Virtual Services Filter] - id str
- Unique identifier that is immutable on creation.
- mesh_
id str - The OCID of the service mesh in which this virtual service is created.
- name str
- A user-friendly name. The name has to be unique within the same service mesh and cannot be changed after creation. Avoid entering confidential information. Example:
My unique resource name
- state str
- The current state of the Resource.
- compartment
Id String - The OCID of the compartment.
- virtual
Service List<Property Map>Collections - The list of virtual_service_collection.
- filters List<Property Map>
- id String
- Unique identifier that is immutable on creation.
- mesh
Id String - The OCID of the service mesh in which this virtual service is created.
- name String
- A user-friendly name. The name has to be unique within the same service mesh and cannot be changed after creation. Avoid entering confidential information. Example:
My unique resource name
- state String
- The current state of the Resource.
Supporting Types
GetVirtualServicesFilter
GetVirtualServicesVirtualServiceCollection
GetVirtualServicesVirtualServiceCollectionItem
- Compartment
Id string - The ID of the compartment in which to list resources.
- Default
Routing List<GetPolicies Virtual Services Virtual Service Collection Item Default Routing Policy> - Routing policy for the virtual service.
- Dictionary<string, string>
- Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
{"foo-namespace.bar-key": "value"}
- Description string
- Description of the resource. It can be changed after creation. Avoid entering confidential information. Example:
This is my new resource
- Dictionary<string, string>
- Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example:
{"bar-key": "value"}
- Hosts List<string>
- The DNS hostnames of the virtual service that is used by its callers. Wildcard hostnames are supported in the prefix form. Examples of valid hostnames are "www.example.com", ".example.com", ".com". Can be omitted if the virtual service will only have TCP virtual deployments.
- Id string
- Unique VirtualService identifier.
- Lifecycle
Details string - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in a Failed state.
- Mesh
Id string - Unique Mesh identifier.
- Mtls
List<Get
Virtual Services Virtual Service Collection Item Mtl> - Mutual TLS settings used when communicating with other virtual services or ingress gateways within the mesh.
- Name string
- A filter to return only resources that match the entire name given.
- State string
- A filter to return only resources that match the life cycle state given.
- Dictionary<string, string>
- Usage of system tag keys. These predefined keys are scoped to namespaces. Example:
{"orcl-cloud.free-tier-retained": "true"}
- Time
Created string - The time when this resource was created in an RFC3339 formatted datetime string.
- Time
Updated string - The time when this resource was updated in an RFC3339 formatted datetime string.
- Compartment
Id string - The ID of the compartment in which to list resources.
- Default
Routing []GetPolicies Virtual Services Virtual Service Collection Item Default Routing Policy - Routing policy for the virtual service.
- map[string]string
- Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
{"foo-namespace.bar-key": "value"}
- Description string
- Description of the resource. It can be changed after creation. Avoid entering confidential information. Example:
This is my new resource
- map[string]string
- Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example:
{"bar-key": "value"}
- Hosts []string
- The DNS hostnames of the virtual service that is used by its callers. Wildcard hostnames are supported in the prefix form. Examples of valid hostnames are "www.example.com", ".example.com", ".com". Can be omitted if the virtual service will only have TCP virtual deployments.
- Id string
- Unique VirtualService identifier.
- Lifecycle
Details string - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in a Failed state.
- Mesh
Id string - Unique Mesh identifier.
- Mtls
[]Get
Virtual Services Virtual Service Collection Item Mtl - Mutual TLS settings used when communicating with other virtual services or ingress gateways within the mesh.
- Name string
- A filter to return only resources that match the entire name given.
- State string
- A filter to return only resources that match the life cycle state given.
- map[string]string
- Usage of system tag keys. These predefined keys are scoped to namespaces. Example:
{"orcl-cloud.free-tier-retained": "true"}
- Time
Created string - The time when this resource was created in an RFC3339 formatted datetime string.
- Time
Updated string - The time when this resource was updated in an RFC3339 formatted datetime string.
- compartment
Id String - The ID of the compartment in which to list resources.
- default
Routing List<GetPolicies Virtual Services Virtual Service Collection Item Default Routing Policy> - Routing policy for the virtual service.
- Map<String,String>
- Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
{"foo-namespace.bar-key": "value"}
- description String
- Description of the resource. It can be changed after creation. Avoid entering confidential information. Example:
This is my new resource
- Map<String,String>
- Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example:
{"bar-key": "value"}
- hosts List<String>
- The DNS hostnames of the virtual service that is used by its callers. Wildcard hostnames are supported in the prefix form. Examples of valid hostnames are "www.example.com", ".example.com", ".com". Can be omitted if the virtual service will only have TCP virtual deployments.
- id String
- Unique VirtualService identifier.
- lifecycle
Details String - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in a Failed state.
- mesh
Id String - Unique Mesh identifier.
- mtls
List<Get
Virtual Services Virtual Service Collection Item Mtl> - Mutual TLS settings used when communicating with other virtual services or ingress gateways within the mesh.
- name String
- A filter to return only resources that match the entire name given.
- state String
- A filter to return only resources that match the life cycle state given.
- Map<String,String>
- Usage of system tag keys. These predefined keys are scoped to namespaces. Example:
{"orcl-cloud.free-tier-retained": "true"}
- time
Created String - The time when this resource was created in an RFC3339 formatted datetime string.
- time
Updated String - The time when this resource was updated in an RFC3339 formatted datetime string.
- compartment
Id string - The ID of the compartment in which to list resources.
- default
Routing GetPolicies Virtual Services Virtual Service Collection Item Default Routing Policy[] - Routing policy for the virtual service.
- {[key: string]: string}
- Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
{"foo-namespace.bar-key": "value"}
- description string
- Description of the resource. It can be changed after creation. Avoid entering confidential information. Example:
This is my new resource
- {[key: string]: string}
- Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example:
{"bar-key": "value"}
- hosts string[]
- The DNS hostnames of the virtual service that is used by its callers. Wildcard hostnames are supported in the prefix form. Examples of valid hostnames are "www.example.com", ".example.com", ".com". Can be omitted if the virtual service will only have TCP virtual deployments.
- id string
- Unique VirtualService identifier.
- lifecycle
Details string - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in a Failed state.
- mesh
Id string - Unique Mesh identifier.
- mtls
Get
Virtual Services Virtual Service Collection Item Mtl[] - Mutual TLS settings used when communicating with other virtual services or ingress gateways within the mesh.
- name string
- A filter to return only resources that match the entire name given.
- state string
- A filter to return only resources that match the life cycle state given.
- {[key: string]: string}
- Usage of system tag keys. These predefined keys are scoped to namespaces. Example:
{"orcl-cloud.free-tier-retained": "true"}
- time
Created string - The time when this resource was created in an RFC3339 formatted datetime string.
- time
Updated string - The time when this resource was updated in an RFC3339 formatted datetime string.
- compartment_
id str - The ID of the compartment in which to list resources.
- default_
routing_ Sequence[servicemesh.policies Get Virtual Services Virtual Service Collection Item Default Routing Policy] - Routing policy for the virtual service.
- Mapping[str, str]
- Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
{"foo-namespace.bar-key": "value"}
- description str
- Description of the resource. It can be changed after creation. Avoid entering confidential information. Example:
This is my new resource
- Mapping[str, str]
- Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example:
{"bar-key": "value"}
- hosts Sequence[str]
- The DNS hostnames of the virtual service that is used by its callers. Wildcard hostnames are supported in the prefix form. Examples of valid hostnames are "www.example.com", ".example.com", ".com". Can be omitted if the virtual service will only have TCP virtual deployments.
- id str
- Unique VirtualService identifier.
- lifecycle_
details str - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in a Failed state.
- mesh_
id str - Unique Mesh identifier.
- mtls
Sequence[servicemesh.
Get Virtual Services Virtual Service Collection Item Mtl] - Mutual TLS settings used when communicating with other virtual services or ingress gateways within the mesh.
- name str
- A filter to return only resources that match the entire name given.
- state str
- A filter to return only resources that match the life cycle state given.
- Mapping[str, str]
- Usage of system tag keys. These predefined keys are scoped to namespaces. Example:
{"orcl-cloud.free-tier-retained": "true"}
- time_
created str - The time when this resource was created in an RFC3339 formatted datetime string.
- time_
updated str - The time when this resource was updated in an RFC3339 formatted datetime string.
- compartment
Id String - The ID of the compartment in which to list resources.
- default
Routing List<Property Map>Policies - Routing policy for the virtual service.
- Map<String>
- Defined tags for this resource. Each key is predefined and scoped to a namespace. Example:
{"foo-namespace.bar-key": "value"}
- description String
- Description of the resource. It can be changed after creation. Avoid entering confidential information. Example:
This is my new resource
- Map<String>
- Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example:
{"bar-key": "value"}
- hosts List<String>
- The DNS hostnames of the virtual service that is used by its callers. Wildcard hostnames are supported in the prefix form. Examples of valid hostnames are "www.example.com", ".example.com", ".com". Can be omitted if the virtual service will only have TCP virtual deployments.
- id String
- Unique VirtualService identifier.
- lifecycle
Details String - A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in a Failed state.
- mesh
Id String - Unique Mesh identifier.
- mtls List<Property Map>
- Mutual TLS settings used when communicating with other virtual services or ingress gateways within the mesh.
- name String
- A filter to return only resources that match the entire name given.
- state String
- A filter to return only resources that match the life cycle state given.
- Map<String>
- Usage of system tag keys. These predefined keys are scoped to namespaces. Example:
{"orcl-cloud.free-tier-retained": "true"}
- time
Created String - The time when this resource was created in an RFC3339 formatted datetime string.
- time
Updated String - The time when this resource was updated in an RFC3339 formatted datetime string.
GetVirtualServicesVirtualServiceCollectionItemDefaultRoutingPolicy
- Type string
- Type of the virtual service routing policy.
- Type string
- Type of the virtual service routing policy.
- type String
- Type of the virtual service routing policy.
- type string
- Type of the virtual service routing policy.
- type str
- Type of the virtual service routing policy.
- type String
- Type of the virtual service routing policy.
GetVirtualServicesVirtualServiceCollectionItemMtl
- Certificate
Id string - The OCID of the certificate resource that will be used for mTLS authentication with other virtual services in the mesh.
- Maximum
Validity int - The number of days the mTLS certificate is valid. This value should be less than the Maximum Validity Duration for Certificates (Days) setting on the Certificate Authority associated with this Mesh. The certificate will be automatically renewed after 2/3 of the validity period, so a certificate with a maximum validity of 45 days will be renewed every 30 days.
- Mode string
- DISABLED: Connection is not tunneled. PERMISSIVE: Connection can be either plaintext or an mTLS tunnel. STRICT: Connection is an mTLS tunnel. Clients without a valid certificate will be rejected.
- Certificate
Id string - The OCID of the certificate resource that will be used for mTLS authentication with other virtual services in the mesh.
- Maximum
Validity int - The number of days the mTLS certificate is valid. This value should be less than the Maximum Validity Duration for Certificates (Days) setting on the Certificate Authority associated with this Mesh. The certificate will be automatically renewed after 2/3 of the validity period, so a certificate with a maximum validity of 45 days will be renewed every 30 days.
- Mode string
- DISABLED: Connection is not tunneled. PERMISSIVE: Connection can be either plaintext or an mTLS tunnel. STRICT: Connection is an mTLS tunnel. Clients without a valid certificate will be rejected.
- certificate
Id String - The OCID of the certificate resource that will be used for mTLS authentication with other virtual services in the mesh.
- maximum
Validity Integer - The number of days the mTLS certificate is valid. This value should be less than the Maximum Validity Duration for Certificates (Days) setting on the Certificate Authority associated with this Mesh. The certificate will be automatically renewed after 2/3 of the validity period, so a certificate with a maximum validity of 45 days will be renewed every 30 days.
- mode String
- DISABLED: Connection is not tunneled. PERMISSIVE: Connection can be either plaintext or an mTLS tunnel. STRICT: Connection is an mTLS tunnel. Clients without a valid certificate will be rejected.
- certificate
Id string - The OCID of the certificate resource that will be used for mTLS authentication with other virtual services in the mesh.
- maximum
Validity number - The number of days the mTLS certificate is valid. This value should be less than the Maximum Validity Duration for Certificates (Days) setting on the Certificate Authority associated with this Mesh. The certificate will be automatically renewed after 2/3 of the validity period, so a certificate with a maximum validity of 45 days will be renewed every 30 days.
- mode string
- DISABLED: Connection is not tunneled. PERMISSIVE: Connection can be either plaintext or an mTLS tunnel. STRICT: Connection is an mTLS tunnel. Clients without a valid certificate will be rejected.
- certificate_
id str - The OCID of the certificate resource that will be used for mTLS authentication with other virtual services in the mesh.
- maximum_
validity int - The number of days the mTLS certificate is valid. This value should be less than the Maximum Validity Duration for Certificates (Days) setting on the Certificate Authority associated with this Mesh. The certificate will be automatically renewed after 2/3 of the validity period, so a certificate with a maximum validity of 45 days will be renewed every 30 days.
- mode str
- DISABLED: Connection is not tunneled. PERMISSIVE: Connection can be either plaintext or an mTLS tunnel. STRICT: Connection is an mTLS tunnel. Clients without a valid certificate will be rejected.
- certificate
Id String - The OCID of the certificate resource that will be used for mTLS authentication with other virtual services in the mesh.
- maximum
Validity Number - The number of days the mTLS certificate is valid. This value should be less than the Maximum Validity Duration for Certificates (Days) setting on the Certificate Authority associated with this Mesh. The certificate will be automatically renewed after 2/3 of the validity period, so a certificate with a maximum validity of 45 days will be renewed every 30 days.
- mode String
- DISABLED: Connection is not tunneled. PERMISSIVE: Connection can be either plaintext or an mTLS tunnel. STRICT: Connection is an mTLS tunnel. Clients without a valid certificate will be rejected.
Package Details
- Repository
- oci pulumi/pulumi-oci
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
oci
Terraform Provider.