@lbrlabs/pulumi-harness
Version:
A Pulumi package for creating and managing Harness resources.
1,497 lines • 126 kB
TypeScript
import * as outputs from "../types/output";
export interface EncryptedTextUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
export interface EnvironmentVariableOverride {
/**
* The name of the variable
*/
name: string;
/**
* The name of the service
*/
serviceName?: string;
/**
* The type of the service variable. Valid values are `TEXT` and `ENCRYPTED_TEXT`
*/
type: string;
/**
* The value of the service variable
*/
value: string;
}
export interface GetEncryptedTextUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
export interface GetEnvironmentVariableOverride {
/**
* The name of the variable
*/
name: string;
/**
* The name of the service
*/
serviceName: string;
/**
* The type of the service variable. Valid values are `TEXT` and `ENCRYPTED_TEXT`
*/
type: string;
/**
* The value of the service variable
*/
value: string;
}
export interface GetGitConnectorCommitDetail {
authorEmailId: string;
authorName: string;
message: string;
}
export interface GetSecretManagerUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
export interface GetSshCredentialUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
export interface GetTriggerCondition {
onWebhooks: outputs.GetTriggerConditionOnWebhook[];
triggerConditionType: string;
}
export interface GetTriggerConditionOnWebhook {
webhookDetails: outputs.GetTriggerConditionOnWebhookWebhookDetail[];
}
export interface GetTriggerConditionOnWebhookWebhookDetail {
header: string;
method: string;
payload: string;
webhookToken: string;
webhookUrl: string;
}
export interface GitConnectorCommitDetails {
/**
* The email id of the author
*/
authorEmailId?: string;
/**
* The name of the author
*/
authorName?: string;
/**
* Commit message
*/
message?: string;
}
export interface GitConnectorUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
export interface InfrastructureDefinitionAwsAmi {
/**
* The ami deployment type to use. Valid options are AWS_ASG, SPOTINST
*/
amiDeploymentType: string;
/**
* Flag to indicate whether the autoscaling group identifies the workload.
*/
asgIdentifiesWorkload?: boolean;
/**
* The name of the autoscaling group.
*/
autoscalingGroupName?: string;
/**
* The classic load balancers to use.
*/
classicLoadbalancers?: string[];
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The naming convention to use for the hostname. Defaults to ${host.ec2Instance.privateDnsName.split('.')[0]}
*/
hostnameConvention?: string;
/**
* The region to deploy to.
*/
region: string;
/**
* The name of the SpotInst cloud provider to connect with.
*/
spotinstCloudProviderName?: string;
/**
* The SpotInst configuration to use.
*/
spotinstConfigJson?: string;
/**
* The staging classic load balancers to use.
*/
stageClassicLoadbalancers?: string[];
/**
* The staging classic load balancers to use.
*/
stageTargetGroupArns?: string[];
/**
* The ARN's of the target groups.
*/
targetGroupArns?: string[];
/**
* Flag to enable traffic shifting.
*/
useTrafficShift?: boolean;
}
export interface InfrastructureDefinitionAwsEcs {
/**
* Flag to assign a public IP address.
*/
assignPublicIp?: boolean;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The name of the ECS cluster to use.
*/
clusterName: string;
/**
* The ARN of the role to use for execution.
*/
executionRole?: string;
/**
* The type of launch configuration to use. Valid options are FARGATE
*/
launchType: string;
/**
* The region to deploy to.
*/
region: string;
/**
* The security group ids to apply to the ecs service.
*/
securityGroupIds?: string[];
/**
* The subnet ids to apply to the ecs service.
*/
subnetIds?: string[];
/**
* The VPC ids to use when selecting the instances.
*/
vpcId?: string;
}
export interface InfrastructureDefinitionAwsLambda {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The IAM role to use.
*/
iamRole?: string;
/**
* The region to deploy to.
*/
region: string;
/**
* The security group ids to apply to the ecs service.
*/
securityGroupIds?: string[];
/**
* The subnet ids to apply to the ecs service.
*/
subnetIds?: string[];
/**
* The VPC ids to use when selecting the instances.
*/
vpcId?: string;
}
export interface InfrastructureDefinitionAwsSsh {
/**
* The name of the autoscaling group.
*/
autoscalingGroupName?: string;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The desired capacity of the auto scaling group.
*/
desiredCapacity?: number;
/**
* The name of the host connection attributes to use.
*/
hostConnectionAttrsName?: string;
/**
* The type of host connection to use. Valid options are PRIVATE*DNS, PUBLIC*DNS, PRIVATE*IP, PUBLIC*IP
*/
hostConnectionType: string;
/**
* The naming convention to use for the hostname. Defaults to ${host.ec2Instance.privateDnsName.split('.')[0]}
*/
hostnameConvention?: string;
/**
* The name of the load balancer to use.
*/
loadbalancerName?: string;
/**
* The region to deploy to.
*/
region: string;
/**
* The tags to use when selecting the instances.
*/
tags?: outputs.InfrastructureDefinitionAwsSshTag[];
/**
* The VPC ids to use when selecting the instances.
*/
vpcIds?: string[];
}
export interface InfrastructureDefinitionAwsSshTag {
key: string;
value: string;
}
export interface InfrastructureDefinitionAwsWinrm {
/**
* The name of the autoscaling group.
*/
autoscalingGroupName: string;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The desired capacity of the autoscaling group.
*/
desiredCapacity?: number;
/**
* The name of the host connection attributes to use.
*/
hostConnectionAttrsName: string;
/**
* The type of host connection to use. Valid options are PRIVATE*DNS, PUBLIC*DNS, PRIVATE*IP, PUBLIC*IP
*/
hostConnectionType: string;
/**
* The naming convention to use for the hostname. Defaults to ${host.ec2Instance.privateDnsName.split('.')[0]}
*/
hostnameConvention?: string;
/**
* The name of the load balancer to use.
*/
loadbalancerName?: string;
/**
* The region to deploy to.
*/
region: string;
}
export interface InfrastructureDefinitionAzureVmss {
/**
* The type of authentication to use. Valid options are SSH*PUBLIC*KEY.
*/
authType: string;
/**
* Base name.
*/
baseName: string;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The type of deployment. Valid options are NATIVE_VMSS
*/
deploymentType: string;
/**
* The name of the host connection attributes to use.
*/
hostConnectionAttrsName?: string;
/**
* The name of the resource group.
*/
resourceGroupName: string;
/**
* The unique id of the azure subscription.
*/
subscriptionId: string;
/**
* The username to connect with.
*/
username: string;
}
export interface InfrastructureDefinitionAzureWebapp {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The name of the resource group.
*/
resourceGroup: string;
/**
* The unique id of the azure subscription.
*/
subscriptionId: string;
}
export interface InfrastructureDefinitionCustom {
/**
* The template version
*/
deploymentTypeTemplateVersion: string;
/**
* Variables to be used in the service
*/
variables?: outputs.InfrastructureDefinitionCustomVariable[];
}
export interface InfrastructureDefinitionCustomVariable {
/**
* The name of the infrastructure definition
*/
name: string;
value: string;
}
export interface InfrastructureDefinitionDatacenterSsh {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The name of the SSH connection attributes to use.
*/
hostConnectionAttributesName: string;
/**
* A list of hosts to deploy to.
*/
hostnames: string[];
}
export interface InfrastructureDefinitionDatacenterWinrm {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* A list of hosts to deploy to.
*/
hostnames: string[];
/**
* The name of the WinRM connection attributes to use.
*/
winrmConnectionAttributesName: string;
}
export interface InfrastructureDefinitionKubernetes {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The namespace in Kubernetes to deploy to.
*/
namespace: string;
/**
* The naming convention of the release. When using Helm Native the default is ${infra.kubernetes.infraId}. For standard Kubernetes manifests the default is release-${infra.kubernetes.infraId}
*/
releaseName: string;
}
export interface InfrastructureDefinitionKubernetesGcp {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The name of the cluster being deployed to.
*/
clusterName: string;
/**
* The namespace in Kubernetes to deploy to.
*/
namespace: string;
/**
* The naming convention of the release.
*/
releaseName: string;
}
export interface InfrastructureDefinitionTanzu {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: string;
/**
* The PCF organization to use.
*/
organization: string;
/**
* The PCF space to deploy to.
*/
space: string;
}
export interface PlatformCcmFiltersFilterProperties {
/**
* Type of CCM filters.
*/
filterType: string;
/**
* Tags to associate with the resource. Tags should be in the form `name:value`.
*/
tags?: string[];
}
export interface SshCredentialKerberosAuthentication {
/**
* Port to use for Kerberos authentication
*/
port: number;
/**
* Name of the principal for authentication
*/
principal: string;
/**
* Realm associated with the Kerberos authentication
*/
realm: string;
/**
* TGT generation method
*/
tgtGenerationMethod?: outputs.SshCredentialKerberosAuthenticationTgtGenerationMethod;
}
export interface SshCredentialKerberosAuthenticationTgtGenerationMethod {
kerberosPasswordId?: string;
keyTabFilePath?: string;
}
export interface SshCredentialSshAuthentication {
/**
* Inline SSH authentication configuration. Only ond of `passphraseSecretId` or `sshKeyFileId` should be used
*/
inlineSsh?: outputs.SshCredentialSshAuthenticationInlineSsh;
/**
* The port to connect to
*/
port: number;
/**
* Server password authentication configuration
*/
serverPassword?: outputs.SshCredentialSshAuthenticationServerPassword;
/**
* Use ssh key file for authentication
*/
sshKeyFile?: outputs.SshCredentialSshAuthenticationSshKeyFile;
/**
* The username to use when connecting to ssh
*/
username: string;
}
export interface SshCredentialSshAuthenticationInlineSsh {
passphraseSecretId?: string;
sshKeyFileId: string;
}
export interface SshCredentialSshAuthenticationServerPassword {
passwordSecretId: string;
}
export interface SshCredentialSshAuthenticationSshKeyFile {
passphraseSecretId?: string;
path: string;
}
export interface SshCredentialUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
export interface UserGroupLdapSettings {
/**
* The group DN of the LDAP user group.
*/
groupDn?: string;
/**
* The group name of the LDAP user group.
*/
groupName?: string;
/**
* The ID of the SSO provider.
*/
ssoProviderId?: string;
}
export interface UserGroupNotificationSettings {
/**
* The email addresses of the user group.
*/
groupEmailAddresses?: string[];
/**
* The Microsoft Teams webhook URL of the user group.
*/
microsoftTeamsWebhookUrl?: string;
/**
* Indicates whether an email is sent when a new user is added to the group.
*/
sendMailToNewMembers?: boolean;
/**
* Enable this setting to have notifications sent to the members of this group.
*/
sendNotificationsToMembers?: boolean;
/**
* The Slack channel to send notifications to.
*/
slackChannel?: string;
/**
* The Slack webhook URL to send notifications to.
*/
slackWebhookUrl?: string;
}
export interface UserGroupPermissions {
/**
* The account permissions of the user group. Valid options are ADMINISTER*OTHER*ACCOUNT*FUNCTIONS, CREATE*AND*DELETE*APPLICATION, CREATE*CUSTOM*DASHBOARDS, MANAGE*ALERT*NOTIFICATION*RULES, MANAGE*API*KEYS, MANAGE*APPLICATION*STACKS, MANAGE*AUTHENTICATION*SETTINGS, MANAGE*CLOUD*PROVIDERS, MANAGE*CONFIG*AS*CODE, MANAGE*CONNECTORS, MANAGE*CUSTOM*DASHBOARDS, MANAGE*DELEGATE*PROFILES, MANAGE*DELEGATES, MANAGE*DEPLOYMENT*FREEZES, MANAGE*IP*WHITELIST, MANAGE*PIPELINE*GOVERNANCE*STANDARDS, MANAGE*RESTRICTED*ACCESS, MANAGE*SECRET*MANAGERS, MANAGE*SECRETS, MANAGE*SSH*AND*WINRM, MANAGE*TAGS, MANAGE*TEMPLATE*LIBRARY, MANAGE*USER*AND*USER*GROUPS*AND*API*KEYS, MANAGE*USERS*AND*GROUPS, READ*USERS*AND*GROUPS, VIEW*AUDITS, VIEW*USER*AND*USER*GROUPS*AND*API_KEYS
*/
accountPermissions?: string[];
/**
* Application specific permissions
*/
appPermissions?: outputs.UserGroupPermissionsAppPermissions;
}
export interface UserGroupPermissionsAppPermissions {
/**
* The permission to perform actions against all resources.
*/
alls?: outputs.UserGroupPermissionsAppPermissionsAll[];
/**
* Permission configuration to perform actions against deployments.
*/
deployments?: outputs.UserGroupPermissionsAppPermissionsDeployment[];
/**
* Permission configuration to perform actions against workflows.
*/
environments?: outputs.UserGroupPermissionsAppPermissionsEnvironment[];
/**
* Permission configuration to perform actions against pipelines.
*/
pipelines?: outputs.UserGroupPermissionsAppPermissionsPipeline[];
/**
* Permission configuration to perform actions against provisioners.
*/
provisioners?: outputs.UserGroupPermissionsAppPermissionsProvisioner[];
/**
* Permission configuration to perform actions against services.
*/
services?: outputs.UserGroupPermissionsAppPermissionsService[];
/**
* Permission configuration to perform actions against templates.
*/
templates?: outputs.UserGroupPermissionsAppPermissionsTemplate[];
/**
* Permission configuration to perform actions against workflows.
*/
workflows?: outputs.UserGroupPermissionsAppPermissionsWorkflow[];
}
export interface UserGroupPermissionsAppPermissionsAll {
actions: string[];
appIds?: string[];
}
export interface UserGroupPermissionsAppPermissionsDeployment {
actions: string[];
appIds?: string[];
envIds?: string[];
filters?: string[];
}
export interface UserGroupPermissionsAppPermissionsEnvironment {
actions: string[];
appIds?: string[];
envIds?: string[];
filters?: string[];
}
export interface UserGroupPermissionsAppPermissionsPipeline {
actions: string[];
appIds?: string[];
envIds?: string[];
filters?: string[];
}
export interface UserGroupPermissionsAppPermissionsProvisioner {
actions: string[];
appIds?: string[];
provisionerIds?: string[];
}
export interface UserGroupPermissionsAppPermissionsService {
actions: string[];
appIds?: string[];
serviceIds?: string[];
}
export interface UserGroupPermissionsAppPermissionsTemplate {
actions: string[];
appIds?: string[];
templateIds?: string[];
}
export interface UserGroupPermissionsAppPermissionsWorkflow {
actions: string[];
appIds?: string[];
filters?: string[];
}
export interface UserGroupSamlSettings {
/**
* The group name of the SAML user group.
*/
groupName?: string;
/**
* The ID of the SSO provider.
*/
ssoProviderId?: string;
}
export declare namespace cloudprovider {
interface AwsAssumeCrossAccountRole {
/**
* If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
*/
externalId?: string;
/**
* This is an IAM role in the target deployment AWS account.
*/
roleArn: string;
}
interface AwsUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
interface DatacenterUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
interface GcpUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
interface KubernetesAuthentication {
/**
* Delegate selectors to inherit the GCP credentials from.
*/
delegateSelectors?: string[];
/**
* Service account configuration for connecting to the Kubernetes cluster
*/
oidc?: outputs.cloudprovider.KubernetesAuthenticationOidc;
/**
* Username and password for authentication to the cluster
*/
serviceAccount?: outputs.cloudprovider.KubernetesAuthenticationServiceAccount;
/**
* Username and password for authentication to the cluster
*/
usernamePassword?: outputs.cloudprovider.KubernetesAuthenticationUsernamePassword;
}
interface KubernetesAuthenticationOidc {
clientIdSecretName: string;
clientSecretSecretName?: string;
identityProviderUrl: string;
masterUrl: string;
passwordSecretName: string;
scopes?: string[];
username: string;
}
interface KubernetesAuthenticationServiceAccount {
caCertificateSecretName?: string;
masterUrl: string;
serviceAccountTokenSecretName: string;
}
interface KubernetesAuthenticationUsernamePassword {
masterUrl: string;
passwordSecretName: string;
username?: string;
usernameSecretName?: string;
}
interface KubernetesUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: string;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: string;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: string;
}
}
export declare namespace platform {
interface AppDynamicsConnectorApiToken {
/**
* The client id used for connecting to App Dynamics.
*/
clientId: string;
/**
* Reference to the Harness secret containing the App Dynamics client secret. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
clientSecretRef: string;
}
interface AppDynamicsConnectorUsernamePassword {
/**
* Reference to a secret containing the password to use for authentication. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
passwordRef: string;
/**
* Username to use for authentication.
*/
username: string;
}
interface ArtifactoryConnectorCredentials {
/**
* Reference to a secret containing the password to use for authentication. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
passwordRef: string;
/**
* Username to use for authentication.
*/
username?: string;
/**
* Reference to a secret containing the username to use for authentication. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
usernameRef?: string;
}
interface AwsCCConnectorCrossAccountAccess {
/**
* The external id of the role to use for cross-account access. This is a random unique value to provide additional secure authentication.
*/
externalId: string;
/**
* The ARN of the role to use for cross-account access.
*/
roleArn: string;
}
interface AwsConnectorCrossAccountAccess {
/**
* If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
*/
externalId?: string;
/**
* The Amazon Resource Name (ARN) of the role that you want to assume. This is an IAM role in the target AWS account.
*/
roleArn: string;
}
interface AwsConnectorEqualJitterBackoffStrategy {
/**
* Base delay.
*/
baseDelay?: number;
/**
* Max BackOff Time.
*/
maxBackoffTime?: number;
/**
* Retry Count.
*/
retryCount?: number;
}
interface AwsConnectorFixedDelayBackoffStrategy {
/**
* Fixed Backoff.
*/
fixedBackoff?: number;
/**
* Retry Count.
*/
retryCount?: number;
}
interface AwsConnectorFullJitterBackoffStrategy {
/**
* Base delay.
*/
baseDelay?: number;
/**
* Max BackOff Time.
*/
maxBackoffTime?: number;
/**
* Retry Count.
*/
retryCount?: number;
}
interface AwsConnectorInheritFromDelegate {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: string[];
}
interface AwsConnectorIrsa {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: string[];
}
interface AwsConnectorManual {
/**
* AWS access key.
*/
accessKey?: string;
/**
* Reference to the Harness secret containing the aws access key. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
accessKeyRef?: string;
/**
* Connect only use delegates with these tags.
*/
delegateSelectors?: string[];
/**
* Reference to the Harness secret containing the aws secret key. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
secretKeyRef: string;
}
interface AwsKmsConnectorCredentials {
/**
* Connect using STS assume role.
*/
assumeRole?: outputs.platform.AwsKmsConnectorCredentialsAssumeRole;
/**
* Inherit the credentials from from the delegate.
*/
inheritFromDelegate?: boolean;
/**
* Specify the AWS key and secret used for authenticating.
*/
manual?: outputs.platform.AwsKmsConnectorCredentialsManual;
}
interface AwsKmsConnectorCredentialsAssumeRole {
duration: number;
externalId?: string;
roleArn: string;
}
interface AwsKmsConnectorCredentialsManual {
accessKeyRef: string;
secretKeyRef: string;
}
interface AwsSecretManagerConnectorCredentials {
/**
* Connect using STS assume role.
*/
assumeRole?: outputs.platform.AwsSecretManagerConnectorCredentialsAssumeRole;
/**
* Inherit the credentials from from the delegate.
*/
inheritFromDelegate?: boolean;
/**
* Specify the AWS key and secret used for authenticating.
*/
manual?: outputs.platform.AwsSecretManagerConnectorCredentialsManual;
}
interface AwsSecretManagerConnectorCredentialsAssumeRole {
duration: number;
externalId?: string;
roleArn: string;
}
interface AwsSecretManagerConnectorCredentialsManual {
accessKeyRef: string;
secretKeyRef: string;
}
interface AzureCloudCostConnectorBillingExportSpec {
/**
* Name of the container.
*/
containerName: string;
/**
* Name of the directory.
*/
directoryName: string;
/**
* Name of the report.
*/
reportName: string;
/**
* Name of the storage account.
*/
storageAccountName: string;
/**
* Subsription Id.
*/
subscriptionId: string;
}
interface AzureCloudProviderConnectorCredentials {
/**
* Authenticate to Azure Cloud Provider using details inheriting from delegate.
*/
azureInheritFromDelegateDetails?: outputs.platform.AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetails;
/**
* Authenticate to Azure Cloud Provider using manual details.
*/
azureManualDetails?: outputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetails;
/**
* Type can either be InheritFromDelegate or ManualConfig.
*/
type: string;
}
interface AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetails {
auth?: outputs.platform.AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuth;
}
interface AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuth {
azureMsiAuthUa?: outputs.platform.AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUa;
type: string;
}
interface AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUa {
clientId?: string;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetails {
applicationId?: string;
auth?: outputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetailsAuth;
tenantId?: string;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetailsAuth {
azureClientKeyCert?: outputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCert;
azureClientSecretKey?: outputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKey;
type?: string;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCert {
certificateRef?: string;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKey {
secretRef?: string;
}
interface BitbucketConnectorApiAuthentication {
/**
* Personal access token for interacting with the BitBucket api. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
tokenRef: string;
/**
* The username used for connecting to the api.
*/
username?: string;
/**
* The name of the Harness secret containing the username. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
usernameRef?: string;
}
interface BitbucketConnectorCredentials {
/**
* Authenticate using Username and password over http(s) for the connection.
*/
http?: outputs.platform.BitbucketConnectorCredentialsHttp;
/**
* Authenticate using SSH for the connection.
*/
ssh?: outputs.platform.BitbucketConnectorCredentialsSsh;
}
interface BitbucketConnectorCredentialsHttp {
passwordRef?: string;
username?: string;
usernameRef?: string;
}
interface BitbucketConnectorCredentialsSsh {
sshKeyRef: string;
}
interface DockerConnectorCredentials {
/**
* The reference to the Harness secret containing the password to use for the docker registry. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
passwordRef: string;
/**
* The username to use for the docker registry.
*/
username?: string;
/**
* The reference to the Harness secret containing the username to use for the docker registry. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
usernameRef?: string;
}
interface ElasticsearchConnectorApiToken {
/**
* The client id used for connecting to ElasticSearch.
*/
clientId: string;
/**
* Reference to the Harness secret containing the ElasticSearch client secret. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
clientSecretRef: string;
}
interface ElasticsearchConnectorNoAuthentication {
}
interface ElasticsearchConnectorUsernamePassword {
/**
* Reference to a secret containing the password to use for authentication. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
passwordRef: string;
/**
* Username to use for authentication.
*/
username: string;
}
interface EnvironmentClustersMappingCluster {
/**
* account Identifier of the account
*/
identifier?: string;
/**
* name of the cluster
*/
name?: string;
/**
* scope at which the cluster exists in harness gitops, project vs org vs account
*/
scope?: string;
}
interface FeatureFlagGitDetails {
/**
* The commit message to use as part of a gitsync operation
*/
commitMsg: string;
}
interface FeatureFlagVariation {
/**
* The description of the variation
*/
description: string;
/**
* The identifier of the variation
*/
identifier: string;
/**
* The user friendly name of the variation
*/
name: string;
/**
* The value of the variation
*/
value: string;
}
interface FiltersFilterProperties {
/**
* Corresponding Entity of the filter. Currently supported types are {Connector, DelegateProfile, Delegate, EnvironmentGroup, FileStore, Environment}.
*/
filterType: string;
/**
* Tags to associate with the resource. Tags should be in the form `name:value`.
*/
tags?: string[];
}
interface GcpCloudCostConnectorBillingExportSpec {
/**
* Data Set Id.
*/
dataSetId: string;
/**
* Table Id.
*/
tableId: string;
}
interface GcpConnectorInheritFromDelegate {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: string[];
}
interface GcpConnectorManual {
/**
* The delegates to connect with.
*/
delegateSelectors: string[];
/**
* Reference to the Harness secret containing the secret key. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
secretKeyRef: string;
}
interface GetAppDynamicsConnectorApiToken {
clientId: string;
clientSecretRef: string;
}
interface GetAppDynamicsConnectorUsernamePassword {
passwordRef: string;
username: string;
}
interface GetArtifactoryConnectorCredential {
passwordRef: string;
username: string;
usernameRef: string;
}
interface GetAwsCCConnectorCrossAccountAccess {
externalId: string;
roleArn: string;
}
interface GetAwsConnectorCrossAccountAccess {
/**
* If the administrator of the account to which the role belongs provided you with an external ID, then enter that value.
*/
externalId: string;
/**
* The Amazon Resource Name (ARN) of the role that you want to assume. This is an IAM role in the target AWS account.
*/
roleArn: string;
}
interface GetAwsConnectorEqualJitterBackoffStrategy {
/**
* Base delay.
*/
baseDelay: number;
/**
* Max BackOff Time.
*/
maxBackoffTime: number;
/**
* Retry Count.
*/
retryCount: number;
}
interface GetAwsConnectorFixedDelayBackoffStrategy {
/**
* Fixed Backoff.
*/
fixedBackoff: number;
/**
* Retry Count.
*/
retryCount: number;
}
interface GetAwsConnectorFullJitterBackoffStrategy {
/**
* Base delay.
*/
baseDelay: number;
/**
* Max BackOff Time.
*/
maxBackoffTime: number;
/**
* Retry Count.
*/
retryCount: number;
}
interface GetAwsConnectorInheritFromDelegate {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: string[];
}
interface GetAwsConnectorIrsa {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: string[];
}
interface GetAwsConnectorManual {
/**
* AWS access key.
*/
accessKey: string;
/**
* Reference to the Harness secret containing the aws access key. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
accessKeyRef: string;
/**
* Connect only use delegates with these tags.
*/
delegateSelectors: string[];
/**
* Reference to the Harness secret containing the aws secret key. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
secretKeyRef: string;
}
interface GetAwsKmsConnectorCredential {
assumeRoles: outputs.platform.GetAwsKmsConnectorCredentialAssumeRole[];
inheritFromDelegate: boolean;
manuals: outputs.platform.GetAwsKmsConnectorCredentialManual[];
}
interface GetAwsKmsConnectorCredentialAssumeRole {
duration: number;
externalId: string;
roleArn: string;
}
interface GetAwsKmsConnectorCredentialManual {
accessKeyRef: string;
secretKeyRef: string;
}
interface GetAwsSecretManagerConnectorCredential {
assumeRoles: outputs.platform.GetAwsSecretManagerConnectorCredentialAssumeRole[];
inheritFromDelegate: boolean;
manuals: outputs.platform.GetAwsSecretManagerConnectorCredentialManual[];
}
interface GetAwsSecretManagerConnectorCredentialAssumeRole {
duration: number;
externalId: string;
roleArn: string;
}
interface GetAwsSecretManagerConnectorCredentialManual {
accessKeyRef: string;
secretKeyRef: string;
}
interface GetAzureCloudCostConnectorBillingExportSpec {
containerName: string;
directoryName: string;
reportName: string;
storageAccountName: string;
/**
* Subsription id.
*/
subscriptionId: string;
}
interface GetAzureCloudProviderConnectorCredential {
azureInheritFromDelegateDetails: outputs.platform.GetAzureCloudProviderConnectorCredentialAzureInheritFromDelegateDetail[];
azureManualDetails: outputs.platform.GetAzureCloudProviderConnectorCredentialAzureManualDetail[];
type: string;
}
interface GetAzureCloudProviderConnectorCredentialAzureInheritFromDelegateDetail {
auths: outputs.platform.GetAzureCloudProviderConnectorCredentialAzureInheritFromDelegateDetailAuth[];
}
interface GetAzureCloudProviderConnectorCredentialAzureInheritFromDelegateDetailAuth {
azureMsiAuthUas: outputs.platform.GetAzureCloudProviderConnectorCredentialAzureInheritFromDelegateDetailAuthAzureMsiAuthUa[];
type: string;
}
interface GetAzureCloudProviderConnectorCredentialAzureInheritFromDelegateDetailAuthAzureMsiAuthUa {
clientId: string;
}
interface GetAzureCloudProviderConnectorCredentialAzureManualDetail {
applicationId: string;
auths: outputs.platform.GetAzureCloudProviderConnectorCredentialAzureManualDetailAuth[];
tenantId: string;
}
interface GetAzureCloudProviderConnectorCredentialAzureManualDetailAuth {
azureClientKeyCerts: outputs.platform.GetAzureCloudProviderConnectorCredentialAzureManualDetailAuthAzureClientKeyCert[];
azureClientSecretKeys: outputs.platform.GetAzureCloudProviderConnectorCredentialAzureManualDetailAuthAzureClientSecretKey[];
type: string;
}
interface GetAzureCloudProviderConnectorCredentialAzureManualDetailAuthAzureClientKeyCert {
certificateRef: string;
}
interface GetAzureCloudProviderConnectorCredentialAzureManualDetailAuthAzureClientSecretKey {
secretRef: string;
}
interface GetBitbucketConnectorApiAuthentication {
tokenRef: string;
username: string;
usernameRef: string;
}
interface GetBitbucketConnectorCredential {
https: outputs.platform.GetBitbucketConnectorCredentialHttp[];
sshes: outputs.platform.GetBitbucketConnectorCredentialSsh[];
}
interface GetBitbucketConnectorCredentialHttp {
passwordRef: string;
username: string;
usernameRef: string;
}
interface GetBitbucketConnectorCredentialSsh {
sshKeyRef: string;
}
interface GetCcmFiltersFilterProperty {
filterType: string;
tags: string[];
}
interface GetDockerConnectorCredential {
passwordRef: string;
username: string;
usernameRef: string;
}
interface GetElasticsearchConnectorApiToken {
/**
* The client id used for connecting to ElasticSearch.
*/
clientId: string;
/**
* Reference to the Harness secret containing the ElasticSearch client secret. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
clientSecretRef: string;
}
interface GetElasticsearchConnectorUsernamePassword {
/**
* Reference to a secret containing the password to use for authentication. To reference a secret at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference a secret at the account scope, prefix 'account` to the expression: account.{identifier}.
*/
passwordRef: string;
/**
* Username to use for authentication.
*/
username: string;
}
interface GetFiltersFilterProperty {
filterType: string;
tags: string[];
}
interface GetGcpCloudCostConnectorBillingExportSpec {
dataSetId: string;
tableId: string;
}
interface GetGcpConnectorInheritFromDelegate {
delegateSelectors: string[];
}
interface GetGcpConnectorManual {
delegateSelectors: string[];
secretKeyRef: string;
}
interface GetGitConnectorCredential {
https: outputs.platform.GetGitConnectorCredentialHttp[];
sshes: outputs.platform.GetGitConnectorCredentialSsh[];
}
interface GetGitConnectorCredentialHttp {
passwordRef: string;
username: string;
usernameRef: string;
}
interface GetGitConnectorCredentialSsh {
sshKeyRef: string;
}
interface GetGithubConnectorApiAuthentication {
githubApps: outputs.platform.GetGithubConnectorApiAuthenticationGithubApp[];
tokenRef: string;
}
interface GetGithubConnectorApiAuthenticationGithubApp {
applicationId: string;
applicationIdRef: string;
installationId: string;
installationIdRef: string;
privateKeyRef: string;
}
interface GetGithubConnectorCredential {
https: outputs.platform.GetGithubConnectorCredentialHttp[];
sshes: outputs.platform.GetGithubConnectorCredentialSsh[];
}
interface GetGithubConnectorCredentialHttp {
tokenRef: string;
username: string;
usernameRef: string;
}
interface GetGithubConnectorCredentialSsh {
sshKeyRef: string;
}
interface GetGitlabConnectorApiAuthentication {
tokenRef: string;
}
interface GetGitlabConnectorCredential {
https: outputs.platform.GetGitlabConnectorCredentialHttp[];
sshes: outputs.platform.GetGitlabConnectorCredentialSsh[];
}
interface GetGitlabConnectorCredentialHttp {
passwordRef: string;
tokenRef: string;
username: string;
usernameRef: string;
}
interface GetGitlabConnectorCredentialSsh {
sshKeyRef: string;
}
interface GetGitopsAgentMetadata {
highAvailability: boolean;
namespace: string;
}
interface GetGitopsApplicationsApplication {
/**
* Metadata corresponding to the resources. This includes all the objects a user must create.
*/
metadatas?: outputs.platform.GetGitopsApplicationsApplicationMetadata[];
/**
* Specifications of the GitOps application. This includes the repository URL, application definition, source, destination and sync policy.
*/
specs?: outputs.platform.GetGitopsApplicationsApplicationSpec[];
}
interface GetGitopsApplicationsApplicationMetadata {
annotations: {
[key: string]: string;
};
clusterName?: string;
finalizers: string[];
generateName?: string;
generation: string;
labels: {
[key: string]: string;
};
/**
* Name of the GitOps application.
*/
name?: string;
namespace: string;
ownerReferences?: outputs.platform.GetGitopsApplicationsApplicationMetadataOwnerReference[];
uid: string;
}
interface GetGitopsApplicationsApplicationMetadataOwnerReference {
apiVersion?: string;
blockOwnerDeletion?: boolean;
controller?: boolean;
/**
* Kind of the GitOps application.
*/
kind?: string;
/**
* Name of the GitOps application.
*/
name?: string;
uid?: string;
}
interface GetGitopsApplicationsApplicationSpec {
destinations?: outputs.platform.GetGitopsApplicationsApplicationSpecDestination[];
sources?: outputs.platform.GetGitopsAp