@lbrlabs/pulumi-harness
Version:
A Pulumi package for creating and managing Harness resources.
1,339 lines • 133 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface EncryptedTextUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
export interface EnvironmentVariableOverride {
/**
* The name of the variable
*/
name: pulumi.Input<string>;
/**
* The name of the service
*/
serviceName?: pulumi.Input<string>;
/**
* The type of the service variable. Valid values are `TEXT` and `ENCRYPTED_TEXT`
*/
type: pulumi.Input<string>;
/**
* The value of the service variable
*/
value: pulumi.Input<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 GetEncryptedTextUsageScopeArgs {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<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 GetEnvironmentVariableOverrideArgs {
/**
* The name of the variable
*/
name?: pulumi.Input<string>;
/**
* The name of the service
*/
serviceName?: pulumi.Input<string>;
/**
* The type of the service variable. Valid values are `TEXT` and `ENCRYPTED_TEXT`
*/
type?: pulumi.Input<string>;
/**
* The value of the service variable
*/
value?: pulumi.Input<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 GetSecretManagerUsageScopeArgs {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<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 GetSshCredentialUsageScopeArgs {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
export interface GitConnectorCommitDetails {
/**
* The email id of the author
*/
authorEmailId?: pulumi.Input<string>;
/**
* The name of the author
*/
authorName?: pulumi.Input<string>;
/**
* Commit message
*/
message?: pulumi.Input<string>;
}
export interface GitConnectorUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
export interface InfrastructureDefinitionAwsAmi {
/**
* The ami deployment type to use. Valid options are AWS_ASG, SPOTINST
*/
amiDeploymentType: pulumi.Input<string>;
/**
* Flag to indicate whether the autoscaling group identifies the workload.
*/
asgIdentifiesWorkload?: pulumi.Input<boolean>;
/**
* The name of the autoscaling group.
*/
autoscalingGroupName?: pulumi.Input<string>;
/**
* The classic load balancers to use.
*/
classicLoadbalancers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The naming convention to use for the hostname. Defaults to ${host.ec2Instance.privateDnsName.split('.')[0]}
*/
hostnameConvention?: pulumi.Input<string>;
/**
* The region to deploy to.
*/
region: pulumi.Input<string>;
/**
* The name of the SpotInst cloud provider to connect with.
*/
spotinstCloudProviderName?: pulumi.Input<string>;
/**
* The SpotInst configuration to use.
*/
spotinstConfigJson?: pulumi.Input<string>;
/**
* The staging classic load balancers to use.
*/
stageClassicLoadbalancers?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The staging classic load balancers to use.
*/
stageTargetGroupArns?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The ARN's of the target groups.
*/
targetGroupArns?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Flag to enable traffic shifting.
*/
useTrafficShift?: pulumi.Input<boolean>;
}
export interface InfrastructureDefinitionAwsEcs {
/**
* Flag to assign a public IP address.
*/
assignPublicIp?: pulumi.Input<boolean>;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The name of the ECS cluster to use.
*/
clusterName: pulumi.Input<string>;
/**
* The ARN of the role to use for execution.
*/
executionRole?: pulumi.Input<string>;
/**
* The type of launch configuration to use. Valid options are FARGATE
*/
launchType: pulumi.Input<string>;
/**
* The region to deploy to.
*/
region: pulumi.Input<string>;
/**
* The security group ids to apply to the ecs service.
*/
securityGroupIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The subnet ids to apply to the ecs service.
*/
subnetIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The VPC ids to use when selecting the instances.
*/
vpcId?: pulumi.Input<string>;
}
export interface InfrastructureDefinitionAwsLambda {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The IAM role to use.
*/
iamRole?: pulumi.Input<string>;
/**
* The region to deploy to.
*/
region: pulumi.Input<string>;
/**
* The security group ids to apply to the ecs service.
*/
securityGroupIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The subnet ids to apply to the ecs service.
*/
subnetIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The VPC ids to use when selecting the instances.
*/
vpcId?: pulumi.Input<string>;
}
export interface InfrastructureDefinitionAwsSsh {
/**
* The name of the autoscaling group.
*/
autoscalingGroupName?: pulumi.Input<string>;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The desired capacity of the auto scaling group.
*/
desiredCapacity?: pulumi.Input<number>;
/**
* The name of the host connection attributes to use.
*/
hostConnectionAttrsName?: pulumi.Input<string>;
/**
* The type of host connection to use. Valid options are PRIVATE*DNS, PUBLIC*DNS, PRIVATE*IP, PUBLIC*IP
*/
hostConnectionType: pulumi.Input<string>;
/**
* The naming convention to use for the hostname. Defaults to ${host.ec2Instance.privateDnsName.split('.')[0]}
*/
hostnameConvention?: pulumi.Input<string>;
/**
* The name of the load balancer to use.
*/
loadbalancerName?: pulumi.Input<string>;
/**
* The region to deploy to.
*/
region: pulumi.Input<string>;
/**
* The tags to use when selecting the instances.
*/
tags?: pulumi.Input<pulumi.Input<inputs.InfrastructureDefinitionAwsSshTag>[]>;
/**
* The VPC ids to use when selecting the instances.
*/
vpcIds?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface InfrastructureDefinitionAwsSshTag {
key: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface InfrastructureDefinitionAwsWinrm {
/**
* The name of the autoscaling group.
*/
autoscalingGroupName: pulumi.Input<string>;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The desired capacity of the autoscaling group.
*/
desiredCapacity?: pulumi.Input<number>;
/**
* The name of the host connection attributes to use.
*/
hostConnectionAttrsName: pulumi.Input<string>;
/**
* The type of host connection to use. Valid options are PRIVATE*DNS, PUBLIC*DNS, PRIVATE*IP, PUBLIC*IP
*/
hostConnectionType: pulumi.Input<string>;
/**
* The naming convention to use for the hostname. Defaults to ${host.ec2Instance.privateDnsName.split('.')[0]}
*/
hostnameConvention?: pulumi.Input<string>;
/**
* The name of the load balancer to use.
*/
loadbalancerName?: pulumi.Input<string>;
/**
* The region to deploy to.
*/
region: pulumi.Input<string>;
}
export interface InfrastructureDefinitionAzureVmss {
/**
* The type of authentication to use. Valid options are SSH*PUBLIC*KEY.
*/
authType: pulumi.Input<string>;
/**
* Base name.
*/
baseName: pulumi.Input<string>;
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The type of deployment. Valid options are NATIVE_VMSS
*/
deploymentType: pulumi.Input<string>;
/**
* The name of the host connection attributes to use.
*/
hostConnectionAttrsName?: pulumi.Input<string>;
/**
* The name of the resource group.
*/
resourceGroupName: pulumi.Input<string>;
/**
* The unique id of the azure subscription.
*/
subscriptionId: pulumi.Input<string>;
/**
* The username to connect with.
*/
username: pulumi.Input<string>;
}
export interface InfrastructureDefinitionAzureWebapp {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The name of the resource group.
*/
resourceGroup: pulumi.Input<string>;
/**
* The unique id of the azure subscription.
*/
subscriptionId: pulumi.Input<string>;
}
export interface InfrastructureDefinitionCustom {
/**
* The template version
*/
deploymentTypeTemplateVersion: pulumi.Input<string>;
/**
* Variables to be used in the service
*/
variables?: pulumi.Input<pulumi.Input<inputs.InfrastructureDefinitionCustomVariable>[]>;
}
export interface InfrastructureDefinitionCustomVariable {
/**
* The name of the infrastructure definition
*/
name: pulumi.Input<string>;
value: pulumi.Input<string>;
}
export interface InfrastructureDefinitionDatacenterSsh {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The name of the SSH connection attributes to use.
*/
hostConnectionAttributesName: pulumi.Input<string>;
/**
* A list of hosts to deploy to.
*/
hostnames: pulumi.Input<pulumi.Input<string>[]>;
}
export interface InfrastructureDefinitionDatacenterWinrm {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* A list of hosts to deploy to.
*/
hostnames: pulumi.Input<pulumi.Input<string>[]>;
/**
* The name of the WinRM connection attributes to use.
*/
winrmConnectionAttributesName: pulumi.Input<string>;
}
export interface InfrastructureDefinitionKubernetes {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The namespace in Kubernetes to deploy to.
*/
namespace: pulumi.Input<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: pulumi.Input<string>;
}
export interface InfrastructureDefinitionKubernetesGcp {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The name of the cluster being deployed to.
*/
clusterName: pulumi.Input<string>;
/**
* The namespace in Kubernetes to deploy to.
*/
namespace: pulumi.Input<string>;
/**
* The naming convention of the release.
*/
releaseName: pulumi.Input<string>;
}
export interface InfrastructureDefinitionTanzu {
/**
* The name of the cloud provider to connect with.
*/
cloudProviderName: pulumi.Input<string>;
/**
* The PCF organization to use.
*/
organization: pulumi.Input<string>;
/**
* The PCF space to deploy to.
*/
space: pulumi.Input<string>;
}
export interface PlatformCcmFiltersFilterProperties {
/**
* Type of CCM filters.
*/
filterType: pulumi.Input<string>;
/**
* Tags to associate with the resource. Tags should be in the form `name:value`.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface SshCredentialKerberosAuthentication {
/**
* Port to use for Kerberos authentication
*/
port: pulumi.Input<number>;
/**
* Name of the principal for authentication
*/
principal: pulumi.Input<string>;
/**
* Realm associated with the Kerberos authentication
*/
realm: pulumi.Input<string>;
/**
* TGT generation method
*/
tgtGenerationMethod?: pulumi.Input<inputs.SshCredentialKerberosAuthenticationTgtGenerationMethod>;
}
export interface SshCredentialKerberosAuthenticationTgtGenerationMethod {
kerberosPasswordId?: pulumi.Input<string>;
keyTabFilePath?: pulumi.Input<string>;
}
export interface SshCredentialSshAuthentication {
/**
* Inline SSH authentication configuration. Only ond of `passphraseSecretId` or `sshKeyFileId` should be used
*/
inlineSsh?: pulumi.Input<inputs.SshCredentialSshAuthenticationInlineSsh>;
/**
* The port to connect to
*/
port: pulumi.Input<number>;
/**
* Server password authentication configuration
*/
serverPassword?: pulumi.Input<inputs.SshCredentialSshAuthenticationServerPassword>;
/**
* Use ssh key file for authentication
*/
sshKeyFile?: pulumi.Input<inputs.SshCredentialSshAuthenticationSshKeyFile>;
/**
* The username to use when connecting to ssh
*/
username: pulumi.Input<string>;
}
export interface SshCredentialSshAuthenticationInlineSsh {
passphraseSecretId?: pulumi.Input<string>;
sshKeyFileId: pulumi.Input<string>;
}
export interface SshCredentialSshAuthenticationServerPassword {
passwordSecretId: pulumi.Input<string>;
}
export interface SshCredentialSshAuthenticationSshKeyFile {
passphraseSecretId?: pulumi.Input<string>;
path: pulumi.Input<string>;
}
export interface SshCredentialUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
export interface UserGroupLdapSettings {
/**
* The group DN of the LDAP user group.
*/
groupDn?: pulumi.Input<string>;
/**
* The group name of the LDAP user group.
*/
groupName?: pulumi.Input<string>;
/**
* The ID of the SSO provider.
*/
ssoProviderId?: pulumi.Input<string>;
}
export interface UserGroupNotificationSettings {
/**
* The email addresses of the user group.
*/
groupEmailAddresses?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The Microsoft Teams webhook URL of the user group.
*/
microsoftTeamsWebhookUrl?: pulumi.Input<string>;
/**
* Indicates whether an email is sent when a new user is added to the group.
*/
sendMailToNewMembers?: pulumi.Input<boolean>;
/**
* Enable this setting to have notifications sent to the members of this group.
*/
sendNotificationsToMembers?: pulumi.Input<boolean>;
/**
* The Slack channel to send notifications to.
*/
slackChannel?: pulumi.Input<string>;
/**
* The Slack webhook URL to send notifications to.
*/
slackWebhookUrl?: pulumi.Input<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?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Application specific permissions
*/
appPermissions?: pulumi.Input<inputs.UserGroupPermissionsAppPermissions>;
}
export interface UserGroupPermissionsAppPermissions {
/**
* The permission to perform actions against all resources.
*/
alls?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsAll>[]>;
/**
* Permission configuration to perform actions against deployments.
*/
deployments?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsDeployment>[]>;
/**
* Permission configuration to perform actions against workflows.
*/
environments?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsEnvironment>[]>;
/**
* Permission configuration to perform actions against pipelines.
*/
pipelines?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsPipeline>[]>;
/**
* Permission configuration to perform actions against provisioners.
*/
provisioners?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsProvisioner>[]>;
/**
* Permission configuration to perform actions against services.
*/
services?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsService>[]>;
/**
* Permission configuration to perform actions against templates.
*/
templates?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsTemplate>[]>;
/**
* Permission configuration to perform actions against workflows.
*/
workflows?: pulumi.Input<pulumi.Input<inputs.UserGroupPermissionsAppPermissionsWorkflow>[]>;
}
export interface UserGroupPermissionsAppPermissionsAll {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupPermissionsAppPermissionsDeployment {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
envIds?: pulumi.Input<pulumi.Input<string>[]>;
filters?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupPermissionsAppPermissionsEnvironment {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
envIds?: pulumi.Input<pulumi.Input<string>[]>;
filters?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupPermissionsAppPermissionsPipeline {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
envIds?: pulumi.Input<pulumi.Input<string>[]>;
filters?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupPermissionsAppPermissionsProvisioner {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
provisionerIds?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupPermissionsAppPermissionsService {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
serviceIds?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupPermissionsAppPermissionsTemplate {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
templateIds?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupPermissionsAppPermissionsWorkflow {
actions: pulumi.Input<pulumi.Input<string>[]>;
appIds?: pulumi.Input<pulumi.Input<string>[]>;
filters?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface UserGroupSamlSettings {
/**
* The group name of the SAML user group.
*/
groupName?: pulumi.Input<string>;
/**
* The ID of the SSO provider.
*/
ssoProviderId?: pulumi.Input<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?: pulumi.Input<string>;
/**
* This is an IAM role in the target deployment AWS account.
*/
roleArn: pulumi.Input<string>;
}
interface AwsUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
interface DatacenterUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
interface GcpUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
interface KubernetesAuthentication {
/**
* Delegate selectors to inherit the GCP credentials from.
*/
delegateSelectors?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Service account configuration for connecting to the Kubernetes cluster
*/
oidc?: pulumi.Input<inputs.cloudprovider.KubernetesAuthenticationOidc>;
/**
* Username and password for authentication to the cluster
*/
serviceAccount?: pulumi.Input<inputs.cloudprovider.KubernetesAuthenticationServiceAccount>;
/**
* Username and password for authentication to the cluster
*/
usernamePassword?: pulumi.Input<inputs.cloudprovider.KubernetesAuthenticationUsernamePassword>;
}
interface KubernetesAuthenticationOidc {
clientIdSecretName: pulumi.Input<string>;
clientSecretSecretName?: pulumi.Input<string>;
identityProviderUrl: pulumi.Input<string>;
masterUrl: pulumi.Input<string>;
passwordSecretName: pulumi.Input<string>;
scopes?: pulumi.Input<pulumi.Input<string>[]>;
username: pulumi.Input<string>;
}
interface KubernetesAuthenticationServiceAccount {
caCertificateSecretName?: pulumi.Input<string>;
masterUrl: pulumi.Input<string>;
serviceAccountTokenSecretName: pulumi.Input<string>;
}
interface KubernetesAuthenticationUsernamePassword {
masterUrl: pulumi.Input<string>;
passwordSecretName: pulumi.Input<string>;
username?: pulumi.Input<string>;
usernameSecretName?: pulumi.Input<string>;
}
interface KubernetesUsageScope {
/**
* Id of the application to scope to. If empty then this scope applies to all applications.
*/
applicationId?: pulumi.Input<string>;
/**
* Type of environment filter applied. Cannot be used with `environmentId`. Valid options are NON*PRODUCTION*ENVIRONMENTS, PRODUCTION_ENVIRONMENTS.
*/
environmentFilterType?: pulumi.Input<string>;
/**
* Id of the id of the specific environment to scope to. Cannot be used with `environmentFilterType`.
*/
environmentId?: pulumi.Input<string>;
}
}
export declare namespace platform {
interface AppDynamicsConnectorApiToken {
/**
* The client id used for connecting to App Dynamics.
*/
clientId: pulumi.Input<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: pulumi.Input<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: pulumi.Input<string>;
/**
* Username to use for authentication.
*/
username: pulumi.Input<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: pulumi.Input<string>;
/**
* Username to use for authentication.
*/
username?: pulumi.Input<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?: pulumi.Input<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: pulumi.Input<string>;
/**
* The ARN of the role to use for cross-account access.
*/
roleArn: pulumi.Input<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?: pulumi.Input<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: pulumi.Input<string>;
}
interface AwsConnectorEqualJitterBackoffStrategy {
/**
* Base delay.
*/
baseDelay?: pulumi.Input<number>;
/**
* Max BackOff Time.
*/
maxBackoffTime?: pulumi.Input<number>;
/**
* Retry Count.
*/
retryCount?: pulumi.Input<number>;
}
interface AwsConnectorFixedDelayBackoffStrategy {
/**
* Fixed Backoff.
*/
fixedBackoff?: pulumi.Input<number>;
/**
* Retry Count.
*/
retryCount?: pulumi.Input<number>;
}
interface AwsConnectorFullJitterBackoffStrategy {
/**
* Base delay.
*/
baseDelay?: pulumi.Input<number>;
/**
* Max BackOff Time.
*/
maxBackoffTime?: pulumi.Input<number>;
/**
* Retry Count.
*/
retryCount?: pulumi.Input<number>;
}
interface AwsConnectorInheritFromDelegate {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: pulumi.Input<pulumi.Input<string>[]>;
}
interface AwsConnectorIrsa {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: pulumi.Input<pulumi.Input<string>[]>;
}
interface AwsConnectorManual {
/**
* AWS access key.
*/
accessKey?: pulumi.Input<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?: pulumi.Input<string>;
/**
* Connect only use delegates with these tags.
*/
delegateSelectors?: pulumi.Input<pulumi.Input<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: pulumi.Input<string>;
}
interface AwsKmsConnectorCredentials {
/**
* Connect using STS assume role.
*/
assumeRole?: pulumi.Input<inputs.platform.AwsKmsConnectorCredentialsAssumeRole>;
/**
* Inherit the credentials from from the delegate.
*/
inheritFromDelegate?: pulumi.Input<boolean>;
/**
* Specify the AWS key and secret used for authenticating.
*/
manual?: pulumi.Input<inputs.platform.AwsKmsConnectorCredentialsManual>;
}
interface AwsKmsConnectorCredentialsAssumeRole {
duration: pulumi.Input<number>;
externalId?: pulumi.Input<string>;
roleArn: pulumi.Input<string>;
}
interface AwsKmsConnectorCredentialsManual {
accessKeyRef: pulumi.Input<string>;
secretKeyRef: pulumi.Input<string>;
}
interface AwsSecretManagerConnectorCredentials {
/**
* Connect using STS assume role.
*/
assumeRole?: pulumi.Input<inputs.platform.AwsSecretManagerConnectorCredentialsAssumeRole>;
/**
* Inherit the credentials from from the delegate.
*/
inheritFromDelegate?: pulumi.Input<boolean>;
/**
* Specify the AWS key and secret used for authenticating.
*/
manual?: pulumi.Input<inputs.platform.AwsSecretManagerConnectorCredentialsManual>;
}
interface AwsSecretManagerConnectorCredentialsAssumeRole {
duration: pulumi.Input<number>;
externalId?: pulumi.Input<string>;
roleArn: pulumi.Input<string>;
}
interface AwsSecretManagerConnectorCredentialsManual {
accessKeyRef: pulumi.Input<string>;
secretKeyRef: pulumi.Input<string>;
}
interface AzureCloudCostConnectorBillingExportSpec {
/**
* Name of the container.
*/
containerName: pulumi.Input<string>;
/**
* Name of the directory.
*/
directoryName: pulumi.Input<string>;
/**
* Name of the report.
*/
reportName: pulumi.Input<string>;
/**
* Name of the storage account.
*/
storageAccountName: pulumi.Input<string>;
/**
* Subsription Id.
*/
subscriptionId: pulumi.Input<string>;
}
interface AzureCloudProviderConnectorCredentials {
/**
* Authenticate to Azure Cloud Provider using details inheriting from delegate.
*/
azureInheritFromDelegateDetails?: pulumi.Input<inputs.platform.AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetails>;
/**
* Authenticate to Azure Cloud Provider using manual details.
*/
azureManualDetails?: pulumi.Input<inputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetails>;
/**
* Type can either be InheritFromDelegate or ManualConfig.
*/
type: pulumi.Input<string>;
}
interface AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetails {
auth?: pulumi.Input<inputs.platform.AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuth>;
}
interface AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuth {
azureMsiAuthUa?: pulumi.Input<inputs.platform.AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUa>;
type: pulumi.Input<string>;
}
interface AzureCloudProviderConnectorCredentialsAzureInheritFromDelegateDetailsAuthAzureMsiAuthUa {
clientId?: pulumi.Input<string>;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetails {
applicationId?: pulumi.Input<string>;
auth?: pulumi.Input<inputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetailsAuth>;
tenantId?: pulumi.Input<string>;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetailsAuth {
azureClientKeyCert?: pulumi.Input<inputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCert>;
azureClientSecretKey?: pulumi.Input<inputs.platform.AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKey>;
type?: pulumi.Input<string>;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientKeyCert {
certificateRef?: pulumi.Input<string>;
}
interface AzureCloudProviderConnectorCredentialsAzureManualDetailsAuthAzureClientSecretKey {
secretRef?: pulumi.Input<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: pulumi.Input<string>;
/**
* The username used for connecting to the api.
*/
username?: pulumi.Input<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?: pulumi.Input<string>;
}
interface BitbucketConnectorCredentials {
/**
* Authenticate using Username and password over http(s) for the connection.
*/
http?: pulumi.Input<inputs.platform.BitbucketConnectorCredentialsHttp>;
/**
* Authenticate using SSH for the connection.
*/
ssh?: pulumi.Input<inputs.platform.BitbucketConnectorCredentialsSsh>;
}
interface BitbucketConnectorCredentialsHttp {
passwordRef?: pulumi.Input<string>;
username?: pulumi.Input<string>;
usernameRef?: pulumi.Input<string>;
}
interface BitbucketConnectorCredentialsSsh {
sshKeyRef: pulumi.Input<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: pulumi.Input<string>;
/**
* The username to use for the docker registry.
*/
username?: pulumi.Input<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?: pulumi.Input<string>;
}
interface ElasticsearchConnectorApiToken {
/**
* The client id used for connecting to ElasticSearch.
*/
clientId: pulumi.Input<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: pulumi.Input<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: pulumi.Input<string>;
/**
* Username to use for authentication.
*/
username: pulumi.Input<string>;
}
interface EnvironmentClustersMappingCluster {
/**
* account Identifier of the account
*/
identifier?: pulumi.Input<string>;
/**
* name of the cluster
*/
name?: pulumi.Input<string>;
/**
* scope at which the cluster exists in harness gitops, project vs org vs account
*/
scope?: pulumi.Input<string>;
}
interface FeatureFlagGitDetails {
/**
* The commit message to use as part of a gitsync operation
*/
commitMsg: pulumi.Input<string>;
}
interface FeatureFlagVariation {
/**
* The description of the variation
*/
description: pulumi.Input<string>;
/**
* The identifier of the variation
*/
identifier: pulumi.Input<string>;
/**
* The user friendly name of the variation
*/
name: pulumi.Input<string>;
/**
* The value of the variation
*/
value: pulumi.Input<string>;
}
interface FiltersFilterProperties {
/**
* Corresponding Entity of the filter. Currently supported types are {Connector, DelegateProfile, Delegate, EnvironmentGroup, FileStore, Environment}.
*/
filterType: pulumi.Input<string>;
/**
* Tags to associate with the resource. Tags should be in the form `name:value`.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
}
interface GcpCloudCostConnectorBillingExportSpec {
/**
* Data Set Id.
*/
dataSetId: pulumi.Input<string>;
/**
* Table Id.
*/
tableId: pulumi.Input<string>;
}
interface GcpConnectorInheritFromDelegate {
/**
* The delegates to inherit the credentials from.
*/
delegateSelectors: pulumi.Input<pulumi.Input<string>[]>;
}
interface GcpConnectorManual {
/**
* The delegates to connect with.
*/
delegateSelectors: pulumi.Input<pulumi.Input<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: pulumi.Input<string>;
}
interface GetGitopsApplicationsApplication {
/**
* Metadata corresponding to the resources. This includes all the objects a user must create.
*/
metadatas?: inputs.platform.GetGitopsApplicationsApplicationMetadata[];
/**
* Specifications of the GitOps application. This includes the repository URL, application definition, source, destination and sync policy.
*/
specs?: inputs.platform.GetGitopsApplicationsApplicationSpec[];
}
interface GetGitopsApplicationsApplicationArgs {
/**
* Metadata corresponding to the resources. This includes all the objects a user must create.
*/
metadatas?: pulumi.Input<pulumi.Input<inputs.platform.GetGitopsApplicationsApplicationMetadataArgs>[]>;
/**
* Specifications of the GitOps application. This includes the repository URL, application definition, source, destination and sync policy.
*/
specs?: pulumi.Input<pulumi.Input<inputs.platform.GetGitopsApplicationsApplicationSpecArgs>[]>;
}
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?: inputs.platform.GetGitopsApplicationsApplicationMetadataOwnerReference[];
uid?: string;
}
interface GetGitopsApplicationsApplicationMetadataArgs {
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
clusterName?: pulumi.Input<string>;
finalizers?: pulumi.Input<pulumi.Input<string>[]>;
generateName?: pulumi.Input<string>;
generation?: pulumi.Input<string>;
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Name of the GitOps application.
*/
name?: pulumi.Input<string>;
namespace?: pulumi.Input<string>;
ownerReferences?: pulumi.Input<pulumi.Input<inputs.platform.GetGitopsApplicationsApplicationMetadataOwnerReferenceArgs>[]>;
uid?: pulumi.Input<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 GetGitopsApplicationsApplicationMetadataOwnerReferenceArgs {
apiVersion?: pulumi.Input<string>;
blockOwnerDeletion?: pulumi.Input<boolean>;
controller?: pulumi.Input<boolean>;
/**
* Kind of the GitOps application.
*/
kind?: pulumi.Input<string>;
/**
* Name of the GitOps application.
*/
name?: pulumi.Input<string>;
uid?: pulumi.Input<string>;
}
interface GetGitopsApplicationsApplicationSpec {
destinations?: inputs.platform.GetGitopsApplicationsApplicationSpecDestination[];
sources?: inputs.platform.GetGitopsApplicationsApplicationSpecSource[];
syncPolicies?: inputs.platform.GetGitopsApplicationsApplicationSpecSyncPolicy[];
}
interface GetGitopsApplicationsApplicationSpecArgs {
destinations?: pulumi.Input<pulumi.Input<inputs.platform.GetGitopsApplicationsApplicationSpecDestinationArgs>[]>;
sources?: pulumi.Input<pulumi.Input<inputs.platform.GetGitopsApplicationsApplicationSpecSourceArgs>[]>;
syncPolicies?: pulumi.Input<pulumi.Input<inputs.platform.GetGitopsApplicationsApplicationSpecSyncPolicyArgs>[]>;
}
interface GetGitopsApplicationsApplicationSpecDestination {
/**
* Name of the GitOps application.
*/
name?: string;
namespace?: string;
server?: string;
}
interface GetGitopsApplicationsApplicationSpecDestinationArgs {
/**
* Name of the GitOps application.
*/
name?: pulumi.Input<string>;
namespace?: pulumi.Input<string>;
server?: pulumi.Input<string>;
}
interface GetGitopsApplicationsApplicationSpecSource {
chart?: string;
directories?: inputs.platform.GetGitopsApplicationsApplicationSpecSourceDirectory[];
helms?: inputs.platform.GetGitopsApplicationsApplicationSpecSourceHelm[];
ksonnets?: inputs.platform.GetGitopsApplicationsApplicationSpecSourceKsonnet[];
kustomizes?: inputs.platform.GetGitopsApplicationsApplicationSpecSourceKustomize[];
path?: string;
plugins?: inputs.platform.GetGitopsApplicationsApplicationSpecSourcePlugin[];
repoUrl?: string;
targetRevision?: string;
}
interface GetGitopsApplicationsApplicationSpecSourceArgs {
chart?: pulumi.Input<string>;
directories?: pulumi.Input<pulumi.Input<inputs.platform.GetGitopsApplicationsApplication